首先,我從來沒有研究過這些東西,或任何東西,所以我可能會問很無聊的問題,這我很抱歉,請去容易對我:)我如何誤解按需求評估?
我玩弄實施演算,並根據需求進行評估。我試圖按照this paper關於這個問題,其中有關位似乎是第28頁上描述的自然語義。
無論如何,我不明白這個評估策略是,據我瞭解,實際替代只發生在評估變量時。抽象評估自己,因爲這些是值,應用程序只會將新條目添加到緩存中。
但考慮到,究竟是如何一個去評價像
(λx.λy.x y) λa.a
按照自然語義,在鏈接的論文中描述的術語,第一次評估步驟是進入x -> λa.a
添加到緩存,並在應用程序的lhs上評估抽象的主體,即λy.x y
。但這是一個價值,所以評估結束。在這一點上,我們有一個沒有關閉的術語,並且是一個非空的堆。雖然我們確切地知道該術語應評估爲λy.(λa.a) y
。
我誤解了什麼?這在實際使用此評估策略的語言中如何工作?
鏈接已損壞。我收到「我們很抱歉!網址與我們資源庫中的任何資源不匹配。」 –
它確實破了,對不起。這是1998年5月由John Maraist,Martin Odersky和Philip Wadler發表的題爲「按需調用Lambda微積分」的函數式編程雜誌的文章。我可以做的是鏈接到相關段落的截圖:https://www.dropbox.com/s/os7a87s67hy9tpt/Screenshot%202016-08-05%2011.21.04.png?dl=0和https:// www .dropbox.com/s/odgtn6jnme0lqbl /截圖%202016-08-05%2011.21.29.png?dl = 0 –
看起來這篇文章可以從P. Wadler的主頁上獲得:http://homepages.inf.ed。 ac.uk/wadler/papers/need-journal/need-journal.ps –