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