[Haskell-cafe] Re: Left fold enumerator - a real pearl overlooked?
John A. De Goes
john at n-brain.net
Tue Mar 3 07:38:52 EST 2009
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 at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list