Context C and expression E | Value of C | Application of continuation | Value | (+ 5
(call/cc
(lambda (e)
(set! cont-remember e)
(* 4 3)))) | 17 | (cont-remember 3) | 8 | (cons 1
(cons 2
(cons 3
(call/cc
(lambda (e)
(set! cont-remember e)
'()))))) | (1 2 3) | (cont-remember '(7 8)) | (1 2 3 7 8) | (define x 5)
(if (= 0 x)
'undefined
(remainder
(* (call/cc
(lambda (e)
(set! cont-remember e)
(+ x 1) ))
(- x 1))
x)) | 4 | (cont-remember 3) | 2 |
| | Capturing and applying continuations. The captured continuations are stored in a global variable.
The application of the continuation is shown in the third column, and the result of the application of the continuation
is shown in the fourth column. |