Non-strictness is not necessary for purity, but it sure gives you some nice properties... Take for example
const x y = x
It would be really nice for this function to have the property "always results in x no matter what you give it as it's second argument". But for a language which is strict, all instances where computing y non-terminates also non-terminate.
So yes, non-strictness is very much a property you want in a language.
Bob
My intuition says that laziness and purity are distinct whereas yours says that purity is a necessary condition. This is what needs to be reconciled.
I believe that everyone is thinking that lazy evaluation and strict evaluation are similar activities whereas they are profoundly different._______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe