
"Daniel Yokomizo"
On Jan 10, 2008 3:36 PM, Achim Schneider
wrote: jerzy.karczmarczuk@info.unicaen.fr 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. -- (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.