update
This commit is contained in:
48
programmation.effet de bord.md
Normal file
48
programmation.effet de bord.md
Normal file
@@ -0,0 +1,48 @@
|
||||
---
|
||||
aliases:
|
||||
- effet de bord
|
||||
- side effect
|
||||
---
|
||||
up:: [[programmation]]
|
||||
#informatique
|
||||
|
||||
> [!definition] effet de bord
|
||||
> En programmation, une [[programmation.fonction|fonction]] est dite à effet de bord si elle modifie un état en dehors de son environnement local.
|
||||
^definition
|
||||
|
||||
> [!cite] [Wikiwand - Effet de bord (informatique)](zotero://select/groups/5383243/items/92J8KRBY) - [Page ](zotero://open-pdf/groups/5383243/items/JD72IJY2?annotation=YVVTF3QP)
|
||||
> En informatique, une fonction est dite à effet de bord (traduction mot à mot de l'anglais side effect, dont le sens est plus proche d'effet secondaire) si elle modifie un état en dehors de son environnement local, c'est-à-dire a une interaction observable avec le monde extérieur autre que retourner une valeur.
|
||||
>
|
||||
> > [!note] Notes
|
||||
> > effet de bord = modification en dehors de l'environnement local
|
||||
> ^YVVTF3QPaJD72IJY2g5383243
|
||||
|
||||
# Exemples
|
||||
|
||||
> [!example] Exemples d'effets de bord
|
||||
> - la modification d'une variable non-locale
|
||||
> - le [[programmation.passage par référence|passage par référence]] d'un [[argument d'une fonction|argument]] mutable
|
||||
> - la modification d'une [[programmation.variable statique|variable statique]] locale
|
||||
> - le fait d'appeler une autre fonction à effet de bord
|
||||
|
||||
> [!cite]- [Wikiwand - Effet de bord (informatique)](zotero://select/groups/5383243/items/92J8KRBY) - [Page ](zotero://open-pdf/groups/5383243/items/JD72IJY2?annotation=ETUCEAGE)
|
||||
> Par exemple, les fonctions qui modifient une variable locale statique, une variable non locale ou un argument mutable passé par référence, les fonctions qui effectuent des opérations d'entrées-sorties ou les fonctions appelant d'autres fonctions à effet de bord[1].
|
||||
> ^ETUCEAGEaJD72IJY2g5383243
|
||||
|
||||
# Problèmes des effets de bord
|
||||
|
||||
Les effets de bord posent problème pour :
|
||||
- la lisibilité (l'influence d'un effet de bord n'est pas bien circonscrite)
|
||||
- la réutilisabilité des [[programmation.fonction|fonctions]] / [[programmation.procédure|procédures]]
|
||||
|
||||
# Solutions possibles
|
||||
|
||||
Le langage [[haskell]] restreint les effets de bord dans le concept de [[monade]].
|
||||
|
||||
> [!cite] [Wikiwand - Effet de bord (informatique)](zotero://select/groups/5383243/items/92J8KRBY) - [Page ](zotero://open-pdf/groups/5383243/items/JD72IJY2?annotation=U8EXFJVJ)
|
||||
> La programmation fonctionnelle cherche au contraire à les minimiser et les isole souvent pour cela dans des structures prévues entre autres pour cela : les monades.
|
||||
>
|
||||
> > [!note] Notes
|
||||
> > La programmation fonctionnelle est une solution aux problèmes des effets de bord.
|
||||
> ^U8EXFJVJaJD72IJY2g5383243
|
||||
|
Reference in New Issue
Block a user