Ich habe wirklich große Probleme damit, callCC zu verstehen. Ich bekomme die Kraft von Fortsetzungen und habe das Konzept in einigen meiner Projekte verwendet, um coole Konzepte zu erstellen. Aber ich musste nie etwas mit größeren Fähigkeiten als verwenden cont :: ((a->r)->r)-> Cont r a
.
Nachdem ich es benutzt habe, ist es sehr sinnvoll, warum sie die Cont-Monade die Mutter aller Monaden nennen. NOCH, ich verstehe nicht, wann ich sie brauchen würde callCC
, und genau das ist meine Frage.
reset
oder shift
. Ich habe es verwendet, um eine eingebettete Sprache zu definieren, die angehalten werden kann, bis eine bestimmte Aktion durch einen anderen Prozess aufgelöst wird, und dann mit der angegebenen "Fortsetzung" fortgesetzt wird. Vielleicht habe ich den Eindruck, viel Erfahrung mit Cont Monad zu haben, aber nicht so viel, ich möchte callCC
Cont
? Wenn Sie sagen, dass Sie nichts Stärkeres als benötigencont
, bedeutet das, dass Sie es nicht verwendet habenreset
oder auchshift
nicht?