All the standard array and stream operators, map, filter, etc are reducers under the hood.

All the standard array and stream operators, map, filter, etc are reducers under the hood. But how do you efficiently compose them? Reducers have a different shape (a, i) => j from easily composable functions. The answer is transducers, a transducer is a high order reducer ie: (reducer) => reducer.