JSFiddle - React, Tailwind, and code Playground
by blesh
JavaScript
function curry(fn) {
var argLen = fn.length;
var curried = function () {
var args = [].slice.call(arguments, 0);
if (args.length < argLen) {
return function () {
return curried.apply(this, args.concat([].slice.call(arguments, 0)));
}
} else {
var result = fn.apply(this, args);
return result;
}
};
return curried;
}
var add = curry(function (a, b) {
return a + b;
});
var add2 = add(2);
console.log(add2(3));
console.log(add(2)(3));
console.log(add(2, 3));
console.log([1,2,3,4,5].map(add(2)));
var sum = function() {
var result = 0;
return function(x) {
return result += x;
};
};
console.log([1,2,3,4,5].map(sum()));