4
也許我的問題有一個非常簡單的答案,但我找不到它。編碼不做任何事的延續
在Scheme R6RS中,我該如何構建一個無所事事,需要任何參數的延續?
我的目標是有一個延續,我們將其命名爲QUIT
這樣的,如果我有以下代碼:你
((lambda()
(display 1)
(display 2)
(QUIT)
(displey "A")))
它preints 1和2,但不是「A」 +
燦幫我?
謝謝。
是的,謝謝。我對可以重用的返回函數的定義感興趣;所以,從你的回答中得到靈感我做了:'(define quit #f)'然後'(call/cc(lambda(k)(set!quit k)))'。 – Aslan986
@Justin發生了什麼情況:調用/ cc支持上下文,並且在lambda內調用(返回)會使程序繼續跳轉到調用/ cc後面的指令,對嗎? – dader
@dader - 是的,這是繼續最簡單和最直接的用法之一。實際上,它可以被稱爲「逃生延續」,因爲它將控制權恢復到封閉範圍。 –