July 2023
Intermediate to advanced
670 pages
17h 13m
English
Throughout this chapter you’ve learned how to express computations with Haskell, and you’ve written several small working programs without thinking too much about how the computer will actually run the programs that you’ve written. If you have experience writing programs in other languages, you might have an intuition about how applications are executed, but Haskell’s execution model is a bit different than what you might have run into in other languages, because it’s a lazy language. More specifically, Haskell uses a form of laziness known as call by need. This means that when you define an expression in Haskell it won’t be evaluated until the value is actually needed. The expressions that haven’t been ...