On 22 feb 2008, at 08.18, Jules Bean wrote:

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).

Hm, thinking about it, parsers just need to be able to return a continuation instead of fail at the end of the input. This continuation can then be invoked with the next chunk as input.
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to