function mjyCurrying(fn) {
function curried(...args) {
console.log(args)
if ( args.length >= fn.length ) {
return fn.call(this, ...args)
} else {
function callback_curried(...args2) {
return curried.call(this, ...args, ...args2)
}
return callback_curried
}
}
return curried
}
function currify(fn){
function curried(...args){
if(args.length >= fn.length){
return fn.call(this,...args)
}else{
function callback_curried(...args2){
return curried.call(this,...args,...args2)
}
return callback_curried
}
}
return curried
}
function add(a,b,c,d){
return a+b+c+d
}
let curryAdd = currify(add)
add(1,2,3,4)
console.log(curryAdd(1)(2)(3,4))