Programmation fonctionnelle – Fiche complète Licence Pro
Haskell est un langage de programmation purement fonctionnel, fortement typé et évalué paresseusement (lazy evaluation). Il est principalement utilisé dans l’enseignement, la recherche et les domaines nécessitant une forte fiabilité logicielle.
En programmation fonctionnelle, une fonction est une entité de premier ordre : elle peut être stockée dans une variable, passée en paramètre et retournée par une autre fonction.
Une fonction pure ne modifie aucun état externe et renvoie toujours le même résultat pour les mêmes arguments.
Une fonction en Haskell est définie par une équation. Il n’y a pas d’instructions impératives mais des expressions.
double x = x * 2
double : nom de la fonctionx : paramètrex * 2 : expression retournéedouble 5 → résultat : 10
Haskell utilise un typage statique fort : le type d’une fonction est connu à la compilation.
double :: Int -> Int double x = x * 2
addition x y = x + y
En réalité, une fonction Haskell ne prend qu’un seul paramètre : les fonctions à plusieurs paramètres utilisent le curryfication.
addition :: Int -> Int -> Int
Une fonction anonyme est une fonction sans nom, définie à la volée avec la syntaxe lambda.
\x -> x * 2
map (\x -> x * 2) [1,2,3] -- Résultat : [2,4,6]
Une fonction d’ordre supérieur est une fonction qui prend une fonction en paramètre ou renvoie une fonction.
map : applique une fonction à chaque élémentfilter : sélectionne des élémentsfoldr / foldl : réduction d’une listemap (+1) [1,2,3] -- [2,3,4] filter even [1..10] -- [2,4,6,8,10]
En Haskell, les boucles sont remplacées par la récursivité.
factorielle 0 = 1 factorielle n = n * factorielle (n-1)
En Haskell, une valeur ne peut jamais être modifiée après sa création. Toute transformation crée une nouvelle valeur.