[Haskell-cafe] Re: Web server continued

Daniel Fischer daniel.is.fischer at web.de
Mon Dec 31 12:05:25 EST 2007


Am Montag, 31. Dezember 2007 17:43 schrieb Achim Schneider:
> Achim Schneider <barsoap at web.de> 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


More information about the Haskell-Cafe mailing list