[Haskell-cafe] Re: Web server continued
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.
More information about the Haskell-Cafe