Estoy realmente luchando por entender callCC. Obtengo el poder de las Continuaciones y he estado usando el concepto en algunos de mis proyectos para crear conceptos geniales. Pero nunca he necesitado usar algo con mayores capacidades que cont :: ((a->r)->r)-> Cont r a
.
Después de usarlo, tiene mucho sentido por qué llaman a Cont Monad la madre de todas las mónadas, PERO, no entiendo cuándo necesitaría usar callCC
, y esa es exactamente mi pregunta.
reset
o shift
. Lo he usado para definir un lenguaje eembedded que se puede suspender hasta que una acción determinada se resuelva mediante otro proceso, y luego se reanuda con la "continuación" dada. Tal vez doy la impresión de tener mucha experiencia con Cont Monad, pero no tanto, solo quiero entender callCC
Cont
? Cuando dices que no has necesitado usar algo más poderoso quecont
eso, ¿eso significa que no has usadoreset
oshift
tampoco?