¿Cómo interpretar callCC en haskell?
En Esquema ejecutando una continuación obtenida de uncall/cc
salta efectivamente a esa llamada / cc inicial y restablece la pila de llamadas guardadas.
Acabo de empezar a aprender Haskell y estoy tratando de averiguar cómo comprender.callCC
. Eso es tratar de comprender.callCC
en términos de comprensión de Scheme'scall/cc
. La implementación decallCC
es
callCC f = cont $ \h -> runCont (f (\a -> cont $ \_ -> h a)) h
Por lo que sé, no se menciona nada relacionado con las pilas de llamadas guardadas o restablecidas. ¿Cómo se interpreta uno?callCC
en Haskell viniendo de la familiaridad con Scheme'scall/cc
.
Edit: Tal vez si alguien pudiera traducir lo siguiente a Haskell, eso me ayudaría a entender.
(define (f return)
(return 2)
3)
(display (f (lambda (x) x))) ; displays 3
(display (call-with-current-continuation f)) ; displays 2