elk/examples/scheme/cc.scm

31 lines
474 B
Scheme

;;; -*-Scheme-*-
(define acc)
(define bcc)
(define n 5)
(define (a)
(if (not (= 0 (call-with-current-continuation
(lambda (cc)
(set! acc cc) 0))))
(if (> n 0)
(begin
(set! n (- n 1))
(display "resume b") (newline)
(bcc 1))
#v)
acc))
(define (b)
(if (not (= 0 (call-with-current-continuation
(lambda (cc)
(set! bcc cc) 0))))
(begin
(display "resume a") (newline)
(acc 1)))
bcc)
(a)
(b)
(acc 1)