Estou realmente lutando para entender o callCC. Eu tenho o poder das continuações e tenho usado o conceito em alguns dos meus projetos para criar conceitos interessantes. Mas nunca precisei usar algo com mais recursos do que cont :: ((a->r)->r)-> Cont r a
.
Depois de usá-lo, faz muito sentido porque eles chamam a Cont Monad de mãe de todas as mônadas. AINDA, eu não entendo quando precisaria usá-la callCC
, e essa é exatamente a minha pergunta.
reset
ou shift
. Usei-o para definir uma linguagem incorporada que pode ser suspensa até que uma determinada ação seja resolvida por outro processo e, em seguida, continue com a "continuação" especificada. Talvez eu dar a impressão de ter um monte de experiência com Cont Mônada, mas não muito realmente, eu realmente quero entender callCC
Cont
? Quando você diz que não precisou usar algo mais poderoso docont
que isso significa que você não usoureset
oushift
também?