rambdax
Version:
Extended version of Rambda - a lightweight, faster alternative to Ramda
19 lines (15 loc) • 484 B
JavaScript
import { curryN } from './curryN.js'
import { map } from './map.js'
import { max } from './max.js'
import { reduce } from './reduce.js'
export function converge(fn, transformers){
if (arguments.length === 1)
return _transformers => converge(fn, _transformers)
const highestArity = reduce(
(a, b) => max(a, b.length), 0, transformers
)
return curryN(highestArity, function (){
return fn.apply(this,
map(g => g.apply(this, arguments), transformers))
})
}