各位好
因为实在搞不懂 call/cc 以及一些环境, scope 的问题, 想要请教一下
(define var 0)
(let
((cont ( call/cc (lambda (k) (k k)) )))
(set! var (+ var 1))
(display var) (newline)
(cond ((< var 10) (define var 9) (display var) (newline) (cont cont))
(#t #t)))
以上这段程式 到底该输出什么呢?
若没有亮白色那段, 输出应该就是
1 1 2 2 ... 9 9 10
但是有亮白色这段 还会是这样吗? chicken 编译器跑出来变 1 9 10 @@