(curry-n f n)
F: функция, которая принимает аргументы п
п: положительное целое число> = 2
, например, скажемКарри функция с п аргументов
(define (add2 a b c d) (+ 2 a b c d))
(define func (curry-n add2 4))
((((func 1) 2) 3) 4)
должен производить 12.
Я думаю, что я понимаю, как работает карри, для двоичной функции карри Я могу сделать что-то вроде
(define (curry-2 f)
(lambda(x)
(lambda(y)
(f x y)))).
но у меня проблемы с обобщением карри на n аргументов, любая помощь?