19 lines
362 B
JavaScript
19 lines
362 B
JavaScript
/**
|
|
* @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
|
|
*/
|