2016-07-30 12 views
2

В LYAHFGG we read:Была ли причина, по которой у Haskell были функции с одним аргументом, как lambda calculus?

Каждая функция в Haskell официально принимает только один параметр.

В этом описании Lambda Calculus we read:

Второе упрощение, что λ-исчисление использует только функции одного входа.

Мой вопрос: Была ли причина того, что у Haskell были функции с одним аргументом, чтобы быть как исчисление лямбда?

(Или это просто комбинированный акцент на простоте с выделки?)

+2

Я думаю, что это более историческое влияние. Все (?) Другие ленивые функциональные языки в то время имели одни аргументные функции. – augustss

+4

Одним из интересных эффектов этого выбора является то, как очень легко определить класс типов по типам функций, а также делает аппликативный рисунок несколько более элегантным. –

ответ

3

Haskell действительно сильно намеревался походить и даже на основе лямбда-исчисления. Выбор цитата из A History of Haskell: Being Lazy with Class:

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