[Haskell-cafe] Re: Web server continued

Jonathan Cast 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.

jcc



More information about the Haskell-Cafe mailing list