[Haskell-cafe] lazy evaluation is not complete

Peter Padawitz peter.padawitz at udo.edu
Mon Feb 9 09:10:22 EST 2009

A simplied version of Example 5-16 in Manna's classical book 
"Mathematical Theory of Computation":

foo x = if x == 0 then 0 else foo (x-1)*foo (x+1)

If run with ghci, foo 5 does not terminate, i.e., Haskell does not look 
for all outermost redices in parallel. Why? For efficiency reasons?

It's a pity because a parallel-outermost strategy would be complete.

More information about the Haskell-Cafe mailing list