The Incomplete Guide to Lazy Evaluation (in Haskell)

Originally, I wanted to write a complete guide to lazy evaluation, but then.

Lazy evaluation is the most widely used method for executing Haskell program code on a computer. It determines the time and memory usage of Haskell programs, and it allows new and powerful ways to write modular code. To make full use of purely functional programming, a good understanding of lazy evaluation is very helpful.

The following series of tutorials provide a thorough introduction to this topic:

Additionally, tools for reasoning about space and time usage are provided in the following articles:


Some HTML formatting is allowed.