On Sat, 07 Nov 2009 12:56:35 -0500, Andrei Alexandrescu
<[email protected]> wrote:
Robert Jacques wrote:
I'd recommend rolling that into a basic statistics struct containing
common single pass metrics: i.e. sum, mean, variance, min, max, etc.
Well the problem is that if you want to compute several one-pass
statistics in one pass, you'd have to invent means to combine these
functions. That ability is already present in reduce, e.g. reduce(min,
max)(range) yields a pair containing the min and the max element after
exactly one pass through range.
Andrei
Yes, but reduce(mean, std)(range) doesn't work. Even reduce(count) would
require the range to be mapped. Besides, in my use case I need lazy
evaluation, and I'd much rather add elements to a statistics struct, than
write a range wrapper.