'use strict';
const curry = (fx) => {
const arity = fx.length;
return function f1() {
const args = [...arguments];
if (args.length >= arity) {
return fx.apply(null, args);
} else {
return function f2() {
const args2 = [...arguments];
return f1.apply(null, args.concat(args2));
}
}
};
};
const add = curry((x, y, z) => x + y + z);
const add2 = add(2);
console.log(add2(4)(4));