次のコード ブロックは両方とも (私の考えでは) 無限ループである必要があります
これは機能します
(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")))
これは動作しません:
(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"))
唯一の違いは、ラムダを使用するものと開始ブロックを使用するものです。2 番目のコード ブロックが機能しないのはなぜですか?
ありがとう