Commit | Line | Data |
---|---|---|
46d2d6f8 AW |
1 | (let ((set-counter2 #f)) |
2 | (define (get-counter2) | |
3 | (call/cc | |
4 | (lambda (k) | |
5 | (set! set-counter2 k) | |
6 | 1))) | |
7 | (define (loop counter1) | |
8 | (let ((counter2 (get-counter2))) | |
9 | (set! counter1 (1+ counter1)) | |
10 | (cond ((not (= counter1 counter2)) | |
11 | (error "bad call/cc behaviour" counter1 counter2)) | |
12 | ((> counter1 10) | |
13 | #t) | |
14 | (else | |
15 | (set-counter2 (1+ counter2)))))) | |
16 | (loop 0)) |