On 18/10/2007, Andreas Rossberg <rossberg@mpi-sws.mpg.de> wrote:
I guess you mean this one:
http://web.cecs.pdx.edu/~sheard/papers/ExplicitLazy.ps
The primitive you're alluding to is called "mimic" in it.
Exactly! Thanks! I owe my (future) success to you :)
What do you mean? You mean that if I write a map
map f [] = []
map f x:xs = f x : map f xs
I can apply it both to infinite and lazy lists?
nums n = n : nums (n + 1)
map (+1) (nums 4)
map (print_int) [1; 5; 6]
On 18/10/2007, Jon Harrop <jon@ffconsultancy.com> wrote:
Scala can do something similar by controlling evaluation simply by altering
the signature. However, I've reviewed Haskell recently and I think complete
laziness is more of a hindrance than a benefit. The only think I'd like to
see added to eager FPLs is the ability to pattern match over lazy values,
forcing them only when necessary.
I never said anything about complete laziness. Actually, I positively agree with you, and I was searching for this paper as I don't want complete laziness. However, I consider laziness very useful in particular situations! For example, see this comment:
http://programming.reddit.com/info/2mxh4/comments/c2ngwb
- Tom