2016-07-30 2 views
2

En LYAHFGG we read:La raison pour laquelle Haskell avait des fonctions à un seul argument était-elle d'être comme le lambda-calcul?

Chaque fonction Haskell prend officiellement un seul paramètre.

Dans cette description de Lambda Calculus we read:

La deuxième simplification est que le calcul de λ utilise uniquement des fonctions d'une seule entrée.

Ma question est: La raison pour laquelle Haskell avait des fonctions à un seul argument était-elle d'être comme le lambda-calcul?

(Ou est-ce juste un combiné sur la simplicité mise au point avec taitement?)

+2

Je pense que c'est une influence plus historique. Tous (?) Les autres langages fonctionnels paresseux à l'époque avaient des fonctions à un seul argument. – augustss

+4

Un effet intéressant de ce choix est de savoir comment il est très facile de définir des typeclasses sur les types de fonctions, et il rend également le motif Applicative un peu plus élégant. –

Répondre

3

Haskell a en effet été fortement destiné à être comme et même basé sur le calcul lambda. Une citation de choix de A History of Haskell: Being Lazy with Class:

La simplicité et l'élégance de la programmation fonctionnelle a captivé les auteurs présents, et bien d'autres chercheurs avec eux. Évaluation paresseuse avec sa connexion directe à la pure, appeler par le nom lambda calcul, la possibilité remarquable de représenter et de manipuler structures de données infinies, et addictively simple et belle mise en œuvre techniques-était comme un médicament.