Я справді дуже боюся з розумінням callCC. Я отримую силу продовжень і використовую цю концепцію в деяких своїх проектах, щоб створити круті концепції. Але ніколи мені не потрібно було використовувати щось з більшими можливостями, ніж cont :: ((a->r)->r)-> Cont r a.
Після його використання має багато сенсу, чому вони називають Cont Monad матір'ю всіх монад, та все ж я не розумію, коли б мені потрібно було користуватися callCC, і це саме моє питання.
resetабо shift. Я використовував його для визначення вбудованої мови, яку можна призупинити, поки певна дія не буде вирішена іншим процесом, а потім вона відновиться із заданим "продовженням". Можливо, у мене склалося враження, що я маю багато досвіду з Cont Monad, але це не так вже й дуже, я просто хочу зрозуміти callCC
Cont? Коли ви говорите, що вам не потрібно було використовувати щось більш потужне, ніжcontце означає, що ви цього не використовувалиresetчи те чи іншеshift?