我做了以下簡單的假設,以瞭解在Haskell名單懶惰的評價,名單懶惰評估在Haskell
head [1, 2] -- expr1
head [1 .. 2] -- expr2
head [1 ..] -- expr3
head . (1 :) $ [] -- eval1
head . (1 :) . (2 :) $ [] -- eval2
我想這expr3
想eval1
懶洋洋地評估,如何expr1
和expr2
?
一般來說,
- 是懶惰的評價在Haskell在編譯和運行時間的技術?
- 它在哪裏說效率好,但很難推理,按時,空間複雜性或程序邏輯?
我不明白你的要求。看起來你試圖推理表達式的評估,但我不知道你在說什麼。在Google上學習更多的關鍵字是「WHNF」。 – kirelagin 2015-04-02 22:36:23
如果有人試圖直接回答你的問題,那麼答案就是:「你的例子中沒有寫出任何表達式。 – kirelagin 2015-04-02 22:38:50
你的意思是'head [1,2]'直接編譯爲'1'嗎? – sof 2015-04-02 22:47:33