Am Montag, 31. Dezember 2007 17:43 schrieb Achim Schneider: > Achim Schneider <[EMAIL PROTECTED]> wrote: > > That's not specified though, the runtime could choose to let + force > > the two chunks the different way round. > > And that is probably also the reason why [1..] == [1..] is _|_. > > Is "Something that can be, in any evaluation strategy, be bottom, is > bottom" quite right, i.e. the formalism defined such, that no > possibly unevaluable thing is defined?
I think it's the other way round. False && _|_ would be bottom in a right-to-left evaluation strategy, but is defined since False && _ = False. And, IIRC, excepting cases where the order of pattern matches intervenes, any expression which can be evaluated in any strategy (without hitting bottom, that is) can also be evaluated lazily and lazy evaluation yields the same value. Cheers, Daniel _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe