[Haskell-cafe] The Proliferation of List-Like Types
Thomas Schilling
nominolo at googlemail.com
Fri Feb 22 03:31:06 EST 2008
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.
More information about the Haskell-Cafe
mailing list