tim*_*mip 2 scheme continuations callcc racket
以下两个代码块都应该(在我看来)是无限循环
这有效
(define call/cc call-with-current-continuation)
(define l 0)
(define i 0)
((lambda ()
(call/cc
(lambda (k)
(set! l k)))
(write i)
(newline)
(set! i (+ i 1))
(l "ignore")))
Run Code Online (Sandbox Code Playgroud)
这不起作用:
(define call/cc call-with-current-continuation)
(define l 0)
(define i 0)
(begin
(call/cc
(lambda (k)
(set! l k)))
(write i)
(newline)
(set! i (+ i 1))
(l "ignore"))
Run Code Online (Sandbox Code Playgroud)
唯一的区别是一个使用lambda,一个使用begin块.为什么第二块代码不起作用?
谢谢