@ibrokethat/curry
Version:
29 lines (20 loc) • 595 B
JavaScript
module.exports = function curry(fn) {
return _curry(fn.length, fn);
};
function _curry(length, fn) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (args.length === 0) {
throw new Error(fn.name + ': called with no arguments');
}
if (args.length >= length) {
return fn.apply(undefined, args);
} else {
return _curry(length - args.length, fn.bind.apply(fn, [null].concat(args)));
}
};
}
//# sourceMappingURL=index.js.map
;