環境不是計劃延續的一部分嗎?環境不是延續的一部分嗎?
我曾與雞,左岸,球拍和開局進行了測試,他們所有的行爲類似:
(define kont #f)
(let ((a 1)
(b 2))
(call-with-current-continuation
(lambda (k)
(set! kont k)
(display 'mutating)
(newline)
(set! a -1)
(set! b -2)))
(display (+ a b))
(newline))
我希望-3的LET進行評估,但在調用KONT +3(因爲我認爲該計劃將記住的突變之前的綁定和b):
(let ...) ; <-- evaluating the LET above
; prints "mutating"
=> -3
(kont 100)
=> -3
(kont 100)
=> -3
所以延續只會影響控制,而不是環境?在這種情況下,爲什麼說實現延續的方法之一是「複製堆棧」(綁定不在堆棧中?)
或者是延續帶有環境和綁定,但是這些*是可變的? – josh