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

On Thu, Dec 10, 2009 at 3:30 PM, John D. Earle <JohnDEarle@cox.net> wrote:
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