specify call-by-need

Malcolm Wallace malcolm.wallace at me.com
Fri Feb 18 11:44:01 CET 2011


On 16 Feb 2011, at 01:53, Scott Turner wrote:

> In practice, Haskell a call-by-need language.  Still, software
> developers are not on firm ground when they run into trouble with
> evaluation order, because the language definition leaves this open. Is
> this an underspecification that should be fixed?

I might actually be inclined to go the other way in the language  
spec.  The Report says the language is "non-strict", but there is at  
least one implementation in the wild which is basically strict (with  
escape hatches for explicit laziness).  Compatibility with Haskell in  
all other aspects (apart from evaluation order) is a nice property.

>  2. Virtually all significant-sized Haskell programs rely on
>     lazy evaluation and have never been tested with another
>     evaluation strategy,

Having personally converted a reasonable number of modules/programs  
from Haskell to this "strict" Haskell implementation, I can verify  
that the change in evaluation strategy does indeed throw up several  
surprises.  None are insurmountable, but writing for a strict  
evaluator does require a different way of thinking about some program  
structuring.

Regards,
     Malcolm




More information about the Haskell-prime mailing list