在本书的前面一些章节里,我们有时候会以限制性的、简单的形式来介绍一些概念。 由于Haskell是一本比较深的语言,所以一次性介绍某个主题的所有特性会令人难以接受。 当基础巩固后,我们就会进行更加深入的学习。
在這個教程裡,我想解釋一下惰性求值的實現原理,並講清楚 Haskell 的惰性求值在時間和空間上的佔用情況。我會先講一些關於圖規約(Graph Reduction)基礎,然後討論一下關於嚴格(Strict)的左褶疊(Left Fold),用於幫助理解內存空間洩漏問題並解決之。