Fiche de révision : Introduction à la Programmation Fonctionnelle

Plan du Cours

  1. Paradigmes de programmation
  2. Programmation fonctionnelle
  3. Programmation fonctionnelle pure
  4. Expressions conditionnelles et récursivité
  5. Langages fonctionnels et avantages

1. Paradigmes de programmation

Notions clés & Définitions

  • Paragdigme de programmation : Un paradigme de programmation est une manière d’aborder la programmation, avec des principes directeurs (comme le style Fortran, Basic, Dijkstra ou C C).
  • Expression de calcul : Une expression est une représentation d’un calcul construite à partir de fonctions et de leurs composants.

Points essentiels

  • Un paradigme de programmation décrit une façon d’aborder la programmation, comme Fortran, Basic, Dijkstra ou le C C.

2. Programmation fonctionnelle

Notions clés & Définitions

  • Programmation fonctionnelle : La programmation fonctionnelle consiste à programmer avec un langage fondé sur les expressions plutôt que sur des instructions impératives.
  • Fonctions en tant que paramètres : En programmation fonctionnelle, une fonction peut être passée en paramètre, renvoyée en sortie ou utilisée comme donnée.

Points essentiels

  • En programmation fonctionnelle, le programme s’appuie sur des expressions construites à l’aide de fonctions.
  • Les fonctions peuvent être placées comme paramètres, en retour ou comme données d’un programme.

3. Programmation fonctionnelle pure

Notions clés & Définitions

  • Programmation fonctionnelle pure : La programmation fonctionnelle pure limite l’exécution à l’évaluation de fonctions.
  • Évaluation déterministe : L’évaluation d’une fonction en pur dépend uniquement de ses paramètres et renvoie pour eux le même résultat.
  • Effet de bord : Un effet de bord est une impureté liée au fait de modifier l’état, rendant le résultat dépendant de plus que les paramètres.

Points essentiels

  • En fonctionnelle pure, l’évaluation d’une fonction ne dépend que de ses paramètres.
  • Pour un même paramètre donné, une fonction doit toujours renvoyer le même résultat.
  • Les variables sont traitées comme constantes : on ne modifie pas leurs valeurs, ce qui évite les effets de bord.
  • Le code sans effet de bord est plus fiable, facile à maintenir, tester et réutiliser.

4. Expressions conditionnelles et récursivité

Notions clés & Définitions

  • Instruction conditionnelle if else : Les instructions conditionnelles if et else peuvent être incluses directement dans une expression comme choix de valeur.
  • Abs en expression conditionnelle : La fonction abs(x) illustre une expression conditionnelle qui renvoie x si x>0 et -x sinon.
  • Suppression des boucles : Dans ce style, les boucles itératives sont remplacées par des appels récursifs.

Points essentiels

  • Des conditionnels if et else peuvent apparaître dans des expressions, par exemple pour définir abs(x).
  • L’itératif est converti en appels fonctionnels récursifs à la place des boucles.
  • Un exemple d’expression conditionnelle renvoie x si x>0 et -x sinon.

5. Langages fonctionnels et avantages

Notions clés & Définitions

  • LISP : LISP est un langage fonctionnel créé en 1958 par McCarthy.
  • Scheme : Scheme est un langage fonctionnel créé en 1975.
  • Haskell : Haskell est un langage fonctionnel créé en 1990.
  • OCaml : OCaml est un langage fonctionnel créé en 1996.
  • Séparation données et traitement : En programmation fonctionnelle, les données sont séparées du traitement qui les transforme.

Points essentiels

  • LISP (1958, McCarthy), Scheme (1975), Haskell (1990) et OCaml (1996) sont cités comme langages fonctionnels.
  • La programmation fonctionnelle rend le programme prédictible et déterministe en séparant les données et le traitement.
  • Un code sans effet de bord est plus fiable, plus facile à maintenir, à tester et à réutiliser.

Repères chronologiques

DateÉvénement
1958Création de LISP par McCarthy
1975Création de Scheme
1990Création de Haskell
1996Création d’OCaml

Tableaux de synthèse

Fonctionnelle vs fonctionnelle pure

AspectFonctionnelleFonctionnelle pure
Dépendance au contextePeut utiliser des traitements avec états selon le codeL’évaluation dépend seulement des paramètres
RésultatPeut varier si des effets existentMême paramètres ⇒ même résultat
État modifiéPeut exister via modificationsVariables constantes : pas de modification

Pièges & confusions fréquents

  1. Confondre une fonctionnel(le) simple avec la fonctionnelle pure : en pur, le résultat ne dépend que des paramètres.
  2. Oublier que les conditionnels if else peuvent être inclus dans une expression, pas seulement écrits comme instructions séparées.
  3. Croire que la fonction abs(x) renvoie une valeur absolue sans condition : elle renvoie x si x>0 et -x sinon.
  4. Penser que les boucles sont obligatoires : ici, elles sont supprimées au profit de la récursivité.
  5. Appliquer l’idée “copie inutile” : pour éviter de dépendre d’un état partagé, une copie indépendante est utilisée avant modification.
  6. Confondre effet de bord et simple calcul : l’effet de bord implique une dépendance à plus que les paramètres via modification d’état.

Checklist Examen

  1. Définir ce qu’est un paradigme de programmation et citer des exemples donnés (Fortrant, Basic, Dijkstra, C C).
  2. Expliquer ce qu’est une expression dans le cadre du calcul avec des fonctions.
  3. Décrire comment une fonction peut être utilisée en programmation fonctionnelle : paramètre, retour ou donnée.
  4. Définir la programmation fonctionnelle pure et dire ce qui caractérise ses évaluations.
  5. Expliquer la propriété clé : même paramètres, même résultat pour une fonction pure.
  6. Dire pourquoi les variables sont traitées comme constantes en fonctionnelle pure et ce que cela évite.
  7. Donner une façon de coder des conditionnels dans une expression (if else intégré) via l’exemple de abs(x).
  8. Expliquer comment les boucles sont remplacées : conversion itérative en appels récursifs.
  9. Citer au moins deux langages fonctionnels avec leur année (parmi LISP 1958, Scheme 1975, Haskell 1990, OCaml 1996).
  10. Relier la séparation données et traitement à la prédictibilité et déterminisme en programmation fonctionnelle.
  11. Expliquer pourquoi un code sans effet de bord est plus fiable, plus facile à maintenir, tester et réutiliser.

Teste tes connaissances

Teste tes connaissances sur Introduction à la Programmation Fonctionnelle avec 9 questions à choix multiples et corrections détaillées.

1. Qu’est-ce qu’un paradigme de programmation ?

2. Qu'est-ce qu'un paradigme de programmation ?

Faire le QCM →

Révisez avec les flashcards

Mémorisez les concepts clés de Introduction à la Programmation Fonctionnelle avec 9 flashcards interactives.

Paradigmes de programmation — définition ?

Manière d’aborder la programmation avec principes directeurs.

Paradigme de programmation

Une approche avec principes directeurs caractéristiques.

Programmation fonctionnelle — rôle ?

Programmer avec des expressions et fonctions comme données.

Voir les flashcards →

Cours similaires

Crée tes propres fiches de révision

Importe ton cours et l'IA génère fiches, QCM et flashcards en 30 secondes.

Générateur de fiches