One can define lazyness in two ways: 1. Lazyness is a demand to the programming language not to reduce every subterm of an expression (if this is possible). In this sense outermost reduction is one kind of lazy-evaluation (see also Bird/Wadler Introduction to Functional Programming). 2. Lazyness does not change the semantic of a program (outermost- reduction would do). It's a set of tricks which makes it possible to do evaluation without reducing subterms twice (see also Peyton Jones/Lester Implementing Functional Languages). Does there exist a common sense concerning the meaning of lazyness? Marc Rehmsmeier (Please excuse my bad English...)
