Currying

by Cwalkdawg

JavaScript

function add(a, b, c, d) {
    return a + b + c + d;
}

function curry() {
    var args = [].slice.call(arguments),
        fn = args.shift();
    
    return function(pEl) {
        args = args.concat(pEl);
        return ( fn.apply(this, args) );
    };
}
var add34and5 = curry(add, 3, 4, 5);

console.log(add34and5(14))