rubico
Version:
[a]synchronous functional programming
27 lines (26 loc) • 805 B
TypeScript
export = genericReduce;
/**
* @name genericReduce
*
* @synopsis
* ```coffeescript [specscript]
* Foldable<T> = Iterable<T>|AsyncIterable<T>
* |{ reduce: (any, T)=>any }|Object<T>
*
* genericReduce<T>(
* collection Foldable<T>,
* reducer (any, T)=>any,
* result any?,
* ) -> result
* ```
*
* @related genericReduceConcurrent
*
* @TODO genericReduceSync(collection, reducer, init) - performance optimization for some of these genericReduces that we know are synchronous
*
* @TODO genericReducePool(poolSize, collection, reducer, init) - for some of these genericReduces that we want to race - result should not care about order of concatenations
* reduce.pool
* transform.pool
* flatMap.pool
*/
declare function genericReduce(collection: any, reducer: any, result: any): any;