function curry(fn) {
return function curried(...args1) {
if (fn.length <= args1.length) {
return fn.apply(this, args1)
} else {
return function(...args2) {
return curried.apply(this, [...args1, ...args2])
}
}
}
}
function sum(a, b, c) {
return a + b + c
}
const curriedSum = curry(sum)
console.log(curriedSum(1, 2, 3))
console.log(curriedSum(1)(2, 3))