Карри это просто "необязательные параметры"? - PullRequest
2 голосов
/ 15 февраля 2011

Я прочитал в интернете заявление парня о том, что "карри - это просто модный способ иметь необязательные параметры". По правде говоря, я чувствую, что это заявление поверхностное и неправильное, но я не могу понять, насколько это возможно, потому что у меня недостаточно знаний о лямбда-исчислении.

Когда я пытаюсь объяснить разницу, мое объяснение охватывает параграфы, в основном сводящиеся к тому, что «В карринге есть все варианты объявления функции с меньшим количеством параметров в качестве типов. Но вы не можете иметь все комбинации функции с необязательными параметрами, такими как допустимые типы и использовать их в других объявлениях, по крайней мере, не автоматически ".

Является ли мой подход в самом начале, и что более важно, существует ли более простой и понятный способ объяснить это?

1 Ответ

5 голосов
/ 15 февраля 2011

Это не имеет ничего общего с необязательным .

Но вместо определения функции, которая принимает два параметра, вы можете определить функцию, которая принимает только один параметр и возвращает функцию, которая принимает другой параметр.

Конечный результат тот же (вызывающий в итоге предоставляет два параметра), но с каррированием вы предоставляете только один за раз.

...