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

Reply via email to