Q27 [Coding]: Implement a generic curry() helper function.
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn.apply(this, args);
}
return function(...nextArgs) {
return curried.apply(this, args.concat(nextArgs));
};
};
}
Key Takeaways
- Compares gathered
args.lengthagainst the expected function parameter count (fn.length). - Recursively returns outer wrapper functions until all parameters are fulfilled.
Knowledge Check
What property of a Function object indicates its declared expected argument count?