Sono davvero alle prese con la comprensione di callCC. Ottengo il potere di Continuations e ho usato il concetto in alcuni dei miei progetti per creare concetti interessanti. Ma non ho mai avuto bisogno di usare qualcosa con capacità maggiori di cont :: ((a->r)->r)-> Cont r a
.
Dopo averlo usato, ha molto senso il motivo per cui chiamano Cont Monad la madre di tutte le monadi, ANCORA, non capisco quando dovrei usare callCC
, ed è esattamente la mia domanda.
reset
o shift
. L'ho usato per definire un linguaggio incorporato che può essere sospeso fino a quando una determinata azione non viene risolta da un altro processo, e poi riprende con la "continuazione" data. Forse ho l'impressione di avere molta esperienza con Cont Monad, ma non molto, voglio solo capire callCC
Cont
? Quando dici che non hai bisogno di usare qualcosa di più potente dicont
, significa che non hai usatoreset
oshift
neanche?