Есть тонны учебников о том, как выполнять функции curry, и как много вопросов здесь, в stackoverflow. Однако после прочтения The Little Schemer, нескольких книг, учебников, сообщений в блогах и потоков stackoverflow я до сих пор не знаю ответа на простой вопрос: "Какой смысл карри?" Я действительно понимаю, как выполнять функцию, а не "почему?". за ним.
Может ли кто-нибудь объяснить мне практическое использование карриных функций (за пределами языков, которые допускают только один аргумент за функцию, где необходимость использования каррирования, конечно, совершенно очевидна.)
изменить: Принимая во внимание некоторые примеры из TLS, какое преимущество
(define (action kind)
(lambda (a b)
(kind a b)))
в отличие от
(define (action kind a b)
(kind a b))
Я могу видеть только больше кода и без дополнительной гибкости...