Lazy IO is a complete disaster for "interactive IO", such as network
and process IO. Moreover, it's somewhat of a failure even for non-
interactive IO such as the use case you described, because it's very
easy for partial evaluation to lead to unclosed files and lazy
evaluation to lead to delayed resource acquisition. I can imagine a
few use cases that might benefit from it, but the evidence suggests
that most developers trying to solve "real world" problems work extra
hard to get their programs working properly with lazy IO.
Elsewhere, laziness can be a real boon, so I don't understand your
question, "Why have laziness in Haskell at all?"
Regards,
John A. De Goes
N-BRAIN, Inc.
The Evolution of Collaboration
http://www.n-brain.net | 877-376-2724 x 101
On Mar 2, 2009, at 6:03 PM, Henning Thielemann wrote:
On Mon, 2 Mar 2009, John Lato wrote:
Hello,
I am not a super-geek (at least, not compared to others on this
list),
but I'll take a try at this anyway. The benefits of iteratees mostly
depend on differences between lazy and strict IO (see ch. 7 of Real
World Haskell for more on this).
Maybe a good text for
http://www.haskell.org/haskellwiki/Enumerator_and_iteratee
?
While I think that the Iteratee pattern has benefits, I suspect that
it can't be combined with regular lazy functions, e.g. of type [a] -
> [a]. Say I have a chain of functions: read a file, parse it into a
tag soup, parse that into an XML tree, transform that tree, format
that into a string, write that to a file, and all of these functions
are written in a lazy way, which is currently considered good style,
I can't use them in conjunction with iteratees. This means, almost
all Haskell libraries have to be rewritten or extended from lazy
style to iteratee style. The question for me is then: Why having
laziness in Haskell at all? Or at least, why having laziness by
default, why not having laziness annotation instead of strictness
annotation.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe