[Haskell-cafe] strict, lazy, non-strict, eager

Jon Fairbairn jon.fairbairn at cl.cam.ac.uk
Wed Dec 28 16:23:47 CET 2011


Thiago Negri <evohunz at gmail.com> writes:

> Lazy evaluation is one implementation of non-strict semantics, where
> the arguments are evaluated only when they are needed.

I would say this:

* non-strict semantics require that no argument is evaluated
  unless needed.

* lazy evaluation is an implementation of non-strict semantics
  in which no argument is evaluated more than once.

As an example of something other than lazy, normal order
reduction is non-strict, but arguments may be evaluated multiple
times.

-- 
Jón Fairbairn                                 Jon.Fairbairn at cl.cam.ac.uk





More information about the Haskell-Cafe mailing list