function curry(fn) {
return function (a, b) {
return arguments.length == 2
? fn(a, b)
: function (b) {
return fn(a, b);
};
};
}
function curryr(fn) {
return function (a, b) {
return arguments.length == 2
? fn(a, b)
: function (b) {
return fn(b, a);
};
};
}
var add = curry(function (a, b) {
return a + b;
});
var sub = curry(function (a, b) {
return a - b;
});
console.log(add(5)(3));
console.log(add(5, 3));
console.log(sub(5, 3));
console.log(sub(5)(10));