import { scan } from './scan'; import { takeLast } from './takeLast'; import { defaultIfEmpty } from './defaultIfEmpty'; import { pipe } from '../util/pipe'; export function reduce(accumulator, seed) { if (arguments.length >= 2) { return function reduceOperatorFunctionWithSeed(source) { return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source); }; } return function reduceOperatorFunction(source) { return pipe(scan((acc, value, index) => accumulator(acc, value, index + 1)), takeLast(1))(source); }; } //# sourceMappingURL=reduce.js.map