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()));