[Haskell-cafe] Re: Why purely in haskell?
Jonathan Cast
jonathanccast at fastmail.fm
Fri Jan 11 00:09:44 EST 2008
On 10 Jan 2008, at 7:55 AM, Achim Schneider wrote:
> "Daniel Yokomizo" <daniel.yokomizo at gmail.com> wrote:
>
>> On Jan 10, 2008 3:36 PM, Achim Schneider <barsoap at web.de> wrote:
>>> jerzy.karczmarczuk at 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.
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
More information about the Haskell-Cafe
mailing list