Self-currying
JavaScript, Prototype
Сабж.
// Original code by James Coglan Function.prototype.toSelfCurrying = function(n) { n = n || this.length; var f = this; return function() { if (arguments.length < n) return f.curry.apply(arguments.callee, arguments); return f.apply(this, arguments); }; };
Например
var adder = function(a, b, c) {
return a + b + c;
};
var add = adder.toSelfCurrying();
add(1)(2)(3); // -> 6
add('a', 'b')('c'); // -> 'abc'
