Jonathan Cast <[EMAIL PROTECTED]> wrote: > > On 31 Dec 2007, at 10:43 AM, Achim Schneider wrote: > > > 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? > > 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. > I guess I just have to change unevaluable to not denotationally reducable. Except to _|_, of course. Which makes it completely logical, but also completely meaningless if you don't look at the algebra.
It seems like I have to translate the formulae to plain English after all. Not today, though, I'm planning to be drunk in one hour and a half. -- (c) this sig last receiving data processing entity. Inspect headers for past copyright information. All rights reserved. Unauthorised copying, hiring, renting, public performance and/or broadcasting of this signature prohibited. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe