ramda-cli icon indicating copy to clipboard operation
ramda-cli copied to clipboard

Reducing stream without intermediate collections

Open raine opened this issue 10 years ago • 0 comments

I'd like to find a simple way to fold a stream into a single value.

Currently the only way to do that is by having an intermediate list:

$ echo 1 2 3 4 5 | R --slurp sum
15

Transducers (and transduce-stream) offer a way to map and filter a stream without creating an intermediate collections, but they don't seem like a solution in this case. It would probably require some kind of reducing transformer just before transduce-stream pushes values to the next stream. Reducing transformer seems unorthodox because normally you'd just use a reduce iterator with transduce.

Investigate possibility of parameterizing a custom reduce stream.

Along the lines of but something nicer than:

$ echo  | R inc --reduce-fn 'add' --reduce-acc '0'
20

raine avatar Oct 20 '15 18:10 raine