Implemented cintinuations and call/cc

This commit is contained in:
FelixBrendel
2020-04-03 22:47:48 +02:00
parent 419d28f4f2
commit 7a780615f9
21 changed files with 422 additions and 203 deletions
+36
View File
@@ -0,0 +1,36 @@
(define add-5 '())
(define res 1)
(mutate! res (+ 2 (call/cc (lambda (cont) (set! add-5 cont) 1)) 3))
(assert (= res 6))
(add-5 100)
(assert (= res 105))
(add-5 10)
(assert (= res 15))
;; ----------- works until here ---------------
(set! res (+ 2 (call/cc (lambda (cont) (set! add-5 cont) 1)) 3))
;; (print)
;; (print res 6)
(assert (= res 6))
(add-5 100)
;; (print res 105)
(assert (= res 105))
(add-5 10)
(assert (= res 15))
;; (print res 15)
;; (define fun '())
;; (mutate! res (apply (call/cc (lambda (k) (set! fun k) +)) (list 1 2 3)))
;; (assert (= res 6))
;; (fun -)
;; (assert (= res -1))