Page 1


Laziness is just a different kind of productivity

Page 2

Haskell is a purely functional language

In Haskell, functions are pure

Page 3

Lazy — Eager — Parallel

Page 4

Concurrency vs Parallelism

Page 5

Haskell is pure and lazy

What does this mean?

Page 6

Parallel computation in Haskell

Page 7

Example: speeding up a sudoku solver

Page 8

Lazy or eager, what's the difference?

Page 9

All languages have some laziness

Page 10

Examples of laziness

Live demo

Page 11

Familiar example: lazy boolean operators

Page 12

Observing laziness in GHCi

Two useful commands

Page 13

Infinite lists


Page 14

Example: primes numbers

Page 15

Predefined functions that create infinite lists

Page 16

More examples

Examples where laziness improves reusability

Page 17

Newton's method

Page 18

Properties of zip

Page 19

prop_zip_length problem

Page 20

The length of infinite lists

Page 21

Lazy natural numbers

Page 22

A new length function

Page 23

prop_zip_length problem solved

Page 24

Search Example


Page 25

Tree equality

Page 26

Fringe equality

Page 27

Lazy IO

Page 28

Further reading