[Haskell-cafe] Re: Web server continued
jonathanccast at fastmail.fm
Mon Dec 31 14:22:52 EST 2007
On 31 Dec 2007, at 10:43 AM, Achim Schneider wrote:
> 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?
No. Again, the semantics of Haskell are defined denotationally, not
operationally. In fact, Haskell implementations are required to use
an evaluation strategy that finds a value whenever one
(denotationally) exists, so it's the exact opposite of what you said.
Strict languages come much closer to your rule, OTOH.
More information about the Haskell-Cafe