J'ai vraiment du mal à comprendre callCC. J'ai la puissance de Continuations et j'ai utilisé le concept dans certains de mes projets pour créer des concepts sympas. Mais je n'ai jamais eu besoin d'utiliser quelque chose avec de plus grandes capacités quecont :: ((a->r)->r)-> Cont r a
.
Après l'avoir utilisé, il est très logique pourquoi ils appellent la Cont Monad la mère de toutes les monades, ENCORE, je ne sais pas quand devrais-je utiliser callCC
, et c'est exactement ma question.
reset
ou shift
. Je l'ai utilisé pour définir un langage intégré qui peut être suspendu jusqu'à ce qu'une action donnée soit résolue par un autre processus, puis il reprend avec la "continuation" donnée. Peut-être que je donne l'impression d'avoir beaucoup d'expérience avec Cont Monad, mais pas vraiment, je veux vraiment comprendre callCC
Cont
? Lorsque vous dites que vous n'avez pas eu besoin d'utiliser quelque chose de plus puissant quecont
, cela signifie-t-il que vous n'avez pas utiliséreset
oushift
non?