Thomas Schilling wrote:
On 21 feb 2008, at 18.35, Johan Tibell wrote:
I switched from lazy bytestrings to a left fold in my networking code
after reading what Oleg wrote about streams vs folds. No problems with
handles, etc. anymore.
Do you fold over chunks? Can you continue to use Parsek or other
utilities that need a stream-abstraction, and if so, how do you handle
the end of a chunk. This is the kind of callback interface where lazy
evaluation really abstracts things nicely.
You can't call a stream-abstraction utility using a left-fold-enumerator
without cheating (unsafeInterleave), because the stream-abstraction is
incompatible (and leaky! even though it is convenient).
You can convert in the other direction fine.
Chunk are no problem, and convertible: you can build an element fold
from a chunk fold, and a chunk fold from an element fold (as long as
there is an 'end-of-input' marker).
Jules
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe