Academia.eduAcademia.edu

Lambda-calcul et langages fonctionnels

1999

Abstract

Un langage fonctionnel est juste un langage dans lequel la notion de fonction (procédure, sousprogramme) est centrale. Cette définition vague recouvre les langages fonctionnels dits purs, dans lesquels tout calcul est effectué au moyen d’appels de fonctions (Miranda, Haskell, par exemple); et les langages fonctionnels impératifs (Lisp, ML), dans lesquels il est aussi permis d’effectuer des effets de bord (affectations), comme en Pascal ou en C. Pour prendre un exemple, en OCaml, on peut définir la factorielle par: let rec fact n = if n=0 then 1 else n*fact (n-1);; et calculer la factorielle de 10 en demandant: fact 10;; ce à quoi le système répond 3628800. On a donc défini la fonction fact par une définition proche de la notion mathématique usuelle: 1 si n = 0 n!ˆ= n × (n − 1)! sinon où ˆ = dénote l’égalité par définition.