crocks
Version:
A collection of well known Algebraic Datatypes for your utter enjoyment.
22 lines (16 loc) • 536 B
JavaScript
/** @license ISC License (c) copyright 2017 original and current authors */
/** @author Ian Hofmann-Hicks (evil) */
function curryN(n, fn) {
return function() {
var xs = [], len = arguments.length;
while ( len-- ) xs[ len ] = arguments[ len ];
var args =
xs.length ? xs : [ undefined ]
var remaining =
Math.floor(n) - args.length
return remaining > 0
? curryN(remaining, Function.bind.apply(fn, [ null ].concat(args)))
: fn.apply(null, args.slice(0, n))
}
}
module.exports = curryN