Написание карри javascript-функции, которую можно вызывать произвольное количество раз, которая возвращает значение при самом последнем вызове функции
В настоящее время я работаю над проблемой программирования в свое личное время, которое требует, чтобы я сделал функцию javascript, которую можно вызывать таким образом.
add(1) // 1
add(1)(2) // 3
add(1)(2)(3); // 6
add(1)(2)(3)(4); // 10
add(1)(2)(3)(4)(5); // 15
Мне трудно понять, как заставить его вернуть значение при самом последнем вызове.
Например, для того, чтобыadd(1)(2)
работать, тоadd(1)
должен вернуть функцию, но согласно инструкцииadd(1)
при вызове само по себе вернется1
.
Я предполагаю, что один из способов преодолеть это - выяснить, сколько раз подрядadd
функция вызывается, но я не могу придумать, как этого добиться. У кого-нибудь есть намеки, которые могут указать мне правильное направление?
Я прочитал эти две статьи (1, 2) о функциях карри, и я их понимаю, но я не уверен, как делать карри при работе с переменным числом аргументов.