A GENTLE INTRODUCTION TO FUNCTIONAL JAVASCRIPT: PART 3
function curry (fn) {
var arity = fn.length;
function given (argsSoFar) {
return function helper () {
var args = Array.prototype.slice.call(arguments, 0);
var updatedArgsSoFar = argsSoFar.concat(args);
if (updatedArgsSoFar.length >= arity) {
return fn.apply(this, updatedArgsSoFar);
}
else {
return given(updatedArgsSoFar);
}
}
}
return given([]);
}Understanding Currying in JavaScript
function curry(fn, ...args) {
return (..._arg) => {
return fn(...args, ..._arg);
}
}const curry = (fn, ...args) =>
(fn.length <= args.length) ?
fn(...args) :
(...more) => curry(fn, ...args, ...more);function curry(func) {
return function curried(...args) {
if (args.length >= func.length) {
return func.apply(this, args);
} else {
return function(...args2) {
return curried.apply(this, args.concat(args2));
}
}
};
}