LeetCode/js/curry.js

20 lines
362 B
JavaScript
Raw Normal View History

/**
* @param {Function} fn
* @return {Function}
*/
var curry = function(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn.apply(this, args);
}
return curried.bind(this, ...args);
};
};
/**
* function sum(a, b) { return a + b; }
* const csum = curry(sum);
* csum(1)(2) // 3
*/