cours/paradigme programmation fonctionnelle.md
Oscar Plaisant 7b591755d8 update
2024-03-31 21:10:34 +02:00

2.7 KiB

aliases
aliases
programmation fonctionnelle

up:: paradigme de programmation #informatique

[!definition] programmation fonctionnelle La programmation fonctionnelle est un paradigme de programmation dans lequel :

  • les programmes sont exprimés comme des arbres d'expressions
  • le contrôle de flot est fait en combinant des fonctions plutôt qu'en assignant des valeurs

^definition

Définitions

[!cite]+ Programming Paradigms - Page In functional programming, control flow is expressed by combining function calls, rather than by assigning values to variables: ^8L7P34B2aLQGLTH3Dg5383243

[!cite]+ What Is Functional Programming? - Page Functional programming is about writing pure functions, about removing hidden inputs and outputs as far as we can, so that as much of our code as possible just describes a relationship between inputs and outputs. ^IU2KWY7La8P4TX53Jg5383243

[!cite]+ Why Functional Programming Matters - Page 1 !images/zotero/5383243WSXGN3RM.png

[!note] Notes programme écrit comme des fonctions qui reçoivent l'entrée en argument et renvoie le résultat. ^WSXGN3RMaH9SGRTMQg5383243p1

Avantages

La programmation fonctionnelle permet :

  • d'éviter les programmation.effet de bord, puisqu'ils sont intertits / impossibles.
    • une fonction n'a aucun autre effet que de calculer son résultat
    • ordre d'éxécution indifférent
      • aucun programmation.effet de bord ne peut changer la valeur d'une expression, elle peut être évaluée n'importe quand
      • permet de ne pas s'occuper du contrôle de flot
    • permet de remplacer une expression par sa valeur sans changer le résultat
  • d'être plus proche du formalisme mathématique
    • les fonctions en programmation sont proches des fonctions en programmation fonctionnelle
    • cela permet de mieux appliquer les théories mathématiques

[!cite]+ Why Functional Programming Matters - Page 1 !images/zotero/538324358PSUPND.png ^58PSUPNDaH9SGRTMQg5383243p1