Здравствуйте, господа гуру. Вот решаю задачку, как сделать рекурсивное каррирование, что бы можно было задавать разное количество аргументов и вызовов функции. Вроде все получилось, но есть нюанс, если подряд запускать несколько раз функцию она возвращает последнее значение. Если запускать с таймаутами, то все ок, может подскажите как решить задачку, спасибо.
const curring = (sum = 0, ...args) => {
sum += args.reduce((a,b) => a+b, 0)
curring.valueOf = () => sum
return curring.bind(null, sum)
}
console.log(curring(1))
console.log(curring(1,2,5))
console.log(curring(1)(2,5))
console.log(curring(1)(2)(5,5)(5))
// 18
// 18
// 18
// 18