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