[Haskell-cafe] Lazy series [was : Preventing sharing]

Jerzy Karczmarczuk jerzy.karczmarczuk at unicaen.fr
Sat Jan 9 17:29:05 UTC 2016


Tom Ellis wrote :
> consider a lazy language, Haskell--,/which doesn't allow recursive bindings of non-function types./   In Haskell-- you
> *cannot*  write
>
>      exps = 1 + integral exps
>
> but you have to write
>
>      exps = I.fix (\e -> 1 + integral e)
>
> So we see that the nice syntax "exps = 1 + integral exps" is not due to
> laziness (since Haskell-- is lazy, but you cannot write that).
If you say so...

You may always say:

"Consider the syntax XXXX.  Now, consider a lazy language which doesn't 
allow XXXX.
  So, your nice syntax has nothing to do with laziness. QED".

Tom, construct such a language, and I might believe you. Also, I recall 
your former objection, that

*exps = 1 + integral exps*

should work "for lazy lists" in a strict language. Please, implement 
it.  Since you would need *letrec* anyway, I suggest Scheme (say, 
Racket). You will see what that implies. Compare the behaviour of strict 
and lazy Racket.

Best regards

Jerzy








-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20160109/e081382a/attachment.html>


More information about the Haskell-Cafe mailing list