UNPKG

rubico

Version:

[a]synchronous functional programming

31 lines (28 loc) 833 B
const funcConcatSync = require('./funcConcatSync') const curry3 = require('./curry3') const __ = require('./placeholder') const iteratorReduce = require('./iteratorReduce') /** * @name generatorFunctionReduce * * @synopsis * ```coffeescript [specscript] * generatorFunctionReduce< * T any, * args ...any, * generatorFunction ...args=>Generator<Promise|T>, * reducer (any, T)=>Promise|any, * result any, * >(generatorFunction, reducer, result) * -> reducingFunction ...args=>Promise|result * ``` * * @description * Execute a reducer for each item of a generator function, returning a single value. */ const generatorFunctionReduce = ( generatorFunction, reducer, result, ) => funcConcatSync( generatorFunction, curry3(iteratorReduce, __, reducer, result)) module.exports = generatorFunctionReduce