What do to?
The basic approach to doing better lies in representing reduction as a graph reduction process, not a string reduction process; this allows sharing of computations not allowed in string reductions (Wadsworth)
A graph-based approach to normal-order evaluation in which recomputation is avoided (by sharing) is called lazy evaluation, or call-by-need
- One can prove it has all the desirable properties of normal-order reduction and it more efficient than applicative order evaluation.
- Still, performance of the underlying mechanisms isn’t that great, although it’s improved a ton