2010-05-13 66 views

回答

2

我想這是作業。如果不是,請直接說出來,然後我會直接告訴你答案。

call/cc這樣的方式來捕捉它被稱爲的延續。這也就意味着對於這些例子,就是當你看到call/cc,有一個黑盒子更換整個電話,看看還剩下些什麼:

(call/cc (fun k -> k 7)) + 3 
=> 
************************ + 3 

所以+ 3call/cc調用的結果會發生什麼。這個「接下來會發生什麼」是call/cc打包並調用k *的東西。

所有您需要現在是弄清楚發生了什麼與你叫k與值7

對於第二個例子,你不叫k可言。既然你沒有對k做任何特別的事情,你不應該指望call/cc做任何特別的事情。


注意:您給出的代碼看起來像某種ML。我所知道的ML方言都沒有call/cc,所以如果你的方言沒有,請嘗試下載PLT Scheme以交互方式玩它。語法不太難拾取。

*'繼續'是一個稍微好一點的方式來說「接下來會發生什麼」,雖然沒有太多更好。

相關問題