6 lines
236 B
JavaScript
6 lines
236 B
JavaScript
const uncurry = (fn, n = 1) => (...args) => {
|
|
const next = acc => args => args.reduce((x, y) => x(y), acc);
|
|
if (n > args.length) throw new RangeError('Arguments too few!');
|
|
return next(fn)(args.slice(0, n));
|
|
};
|
|
module.exports = uncurry; |