On 10 Jan 2008, at 7:55 AM, Achim Schneider wrote:
"Daniel Yokomizo" <[EMAIL PROTECTED]> wrote:
On Jan 10, 2008 3:36 PM, Achim Schneider <[EMAIL PROTECTED]> wrote:
[EMAIL PROTECTED] wrote:
Niko Korhonen writes:
...
Although it could be argued that laziness is the cause of some
very obscure bugs... <g>
Niko
Example, PLEASE.
[1..] == [1..]
, for assumed operational semantics of ones own axiomatic semantics.
Bugs are only a misunderstanding away.
It has nothing to do with laziness, but with using an algebraic
function (==) with a codata structure (stream). If Haskell kept
laziness but enforced separation of data and codata such code
wouldn't
compile. Lazy lists or streams never are a problem, but you can't
(generically) fold codata.
Exactly. Denotationally it hasn't, but axiomatically it has.
Because it
looks like mathematical terms one can easily get lost in believing it
reduces like mathematics, too.
What kind of mathematics? I don't know of any mathematics where
algebraic simplifications are employed without proof of the
underlying equations (in some denotational model).
jcc
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe