function addNum(...rest){
let arr = [];
let length = rest.length;
if(length == 3){
return rest[0]+rest[1]+rest[2];
} else {
arr = [...rest];
return function addNum2(...rest2){
length = length+rest2.length;
arr = [...arr,...rest2];
if(length == 3){
return arr[0]+arr[1]+arr[2];
} else {
return addNum2;
}
}
}
}
function add(...args){
return args.reduce((a,b)=>a+b);
}
function currying(fn) {
let restArr = [];
return function B(...rest){
if(rest.length){
restArr = [...restArr,...rest];
return B;
} else {
return fn.apply(this,restArr);
}
}
}
let addCurry = currying(add);
console.log(addCurry(1)(2)(3,4)());