I meant the average of the whole list - given a sumS and lengthS ("S" for "Stream"), write meanS as something like liftS2 (/) sumS lengthS.
Or is that possible with lazy lists too? (looks like arrows actually - which arrow is appropriate here?) 2011/7/1 Malcolm Wallace <malcolm.wall...@me.com>: > Sure you can. > > runningAverage :: Int -> [Double] -> [Double] > runningAverage n xs = let chunk = take n xs > in (sum chunk / length chunk) : runningAverage (tail xs) > > Lazy lists are absolutely ideal for this purpose. > Regards, > Malcolm > > On 1 Jul 2011, at 07:33, Eugene Kirpichov wrote: > >> 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 <apfel...@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@haskell.org >>> http://www.haskell.org/mailman/listinfo/haskell-cafe >>> >> >> >> >> -- >> Eugene Kirpichov >> Principal Engineer, Mirantis Inc. http://www.mirantis.com/ >> Editor, http://fprog.ru/ >> >> _______________________________________________ >> Haskell-Cafe mailing list >> Haskell-Cafe@haskell.org >> http://www.haskell.org/mailman/listinfo/haskell-cafe > > -- Eugene Kirpichov Principal Engineer, Mirantis Inc. http://www.mirantis.com/ Editor, http://fprog.ru/ _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe