Définition
Système formel pour exprimer le calcul fondé sur l'abstraction de fonction, l'application, la liaison de variables et la substitution ; il constitue un modèle de programmation minimal et la base du paradigme fonctionnel et de la théorie de la calculabilité.
Principe
Principe
Le calcul s'effectue par règles de transformation syntaxique : alpha-conversion (renommer les variables liées), bêta-réduction (substituer un argument à une variable liée dans le corps d'une fonction) et, parfois, êta-conversion (extensionalité) ; les fonctions sont des valeurs de premier ordre et il n'y a pas d'état intégré.
Démonstration
Démonstration
Avec les encodages de Church, les nombres naturels sont représentés comme des fonctions d'ordre supérieur (numéraux de Church) et l'addition se définit comme une composition d'abstractions lambda ; la bêta-réduction de (add 1 2) produit le numéral correspondant à 3.
Mauvaise application
Mauvaise application
Confondre égalité syntaxique et équivalence opérationnelle, omettre d'éviter la capture de variables lors de la substitution (ne pas effectuer d'alpha-conversion), ou s'attendre à des effets de bord et à un état mutable comme en impératif — cela mène à un raisonnement ou des programmes incorrects.
Conséquence
Conséquence
Un modèle compact et expressif qui caractérise la calculabilité, sous-tend les systèmes de types et les langages fonctionnels, et clarifie l'équivalence et la transformation de programmes via réductions et formes normales.
Inversion
Inversion
Un modèle impératif (par ex. machine de Turing avec bande mutable ou machine à registres avec état) qui met l'accent sur les mises à jour séquentielles d'état plutôt que sur l'application de fonctions par substitution.
Limite
Limite
Le calcul lambda pur et non typé omet types, données primitives et effets ; les langages pratiques ajoutent types, primitives et systèmes d'effets par-dessus la computation de style lambda pour gérer ressources et interactions avec l'environnement.
Tension sémantique
Tension sémantique
Le calcul lambda comme modèle abstrait du calcul versus son rôle comme syntaxe et sémantique concrètes d'un langage de programmation ; les variantes non typées et typées s'opposent aussi entre expressivité et sécurité.
Synthèse
Synthèse
Une algèbre dépouillée de fonctions où le calcul est conduit par substitution : on définit des fonctions par abstraction, on les applique à des arguments et on calcule en réduisant systématiquement les expressions, formant le noyau conceptuel de la computation fonctionnelle et de la calculabilité théorique.