[Haskell-cafe] Patterns for processing large but finite streams

Eugene Kirpichov ekirpichov at gmail.com
Fri Jul 1 08:33:38 CEST 2011


Plain old lazy lists do not allow me to combine multiple concurrent
computations, e.g. I cannot define average from sum and length.

2011/7/1 Heinrich Apfelmus <apfelmus at quantentunnel.de>:
> Eugene Kirpichov wrote:
>>
>> I'm rewriting timeplot to avoid holding the whole input in memory, and
>> naturally a problem arises:
>>
>> How to represent large but finite streams and functions that process
>> them, returning other streams or some kinds of aggregate values?
>>
>> Examples:
>> * Adjacent differences of a stream of numbers
>> * Given a stream of numbers with times, split it into buckets by time
>> of given width and produce a stream of (bucket, 50%,75% and 90%
>> quantiles in this bucket)
>> * Sum a stream of numbers
>>
>> Is this, perhaps, what comonads are for? Or iteratees?
>
> Plain old lazy lists?
>
>
> Best regards,
> Heinrich Apfelmus
>
> --
> http://apfelmus.nfshost.com
>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>



-- 
Eugene Kirpichov
Principal Engineer, Mirantis Inc. http://www.mirantis.com/
Editor, http://fprog.ru/



More information about the Haskell-Cafe mailing list