在本書的前面一些章節里,我們有時候會以限制性的、簡單的形式來介紹一些概念。 由于Haskell是一本比較深的語言,所以一次性介紹某個主題的所有特性會令人難以接受。 當基礎鞏固后,我們就會進行更加深入的學習。
在這個教程裡,我想解釋一下惰性求值的實現原理,並講清楚 Haskell 的惰性求值在時間和空間上的佔用情況。我會先講一些關於圖規約(Graph Reduction)基礎,然後討論一下關於嚴格(Strict)的左褶疊(Left Fold),用於幫助理解內存空間洩漏問題並解決之。