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