summaryrefslogtreecommitdiff
path: root/TYLA/Subprograms.md
diff options
context:
space:
mode:
Diffstat (limited to 'TYLA/Subprograms.md')
-rw-r--r--TYLA/Subprograms.md21
1 files changed, 20 insertions, 1 deletions
diff --git a/TYLA/Subprograms.md b/TYLA/Subprograms.md
index 4790ecd..a36d26d 100644
--- a/TYLA/Subprograms.md
+++ b/TYLA/Subprograms.md
@@ -26,4 +26,23 @@ Passage d'une partie des arguments au sous-programme pour renvoyer une fonction
# Curryfication
Traduction d'une fonction à plusieurs arguments en plusieurs fonction d'un seul argument
# Arguments nommés et par défaut
-Permettent de spécifier certains arguments et d'avoir une valeur par défaut pour les autres \ No newline at end of file
+Permettent de spécifier certains arguments et d'avoir une valeur par défaut pour les autres
+
+# Passage d'arguments
+## Call by value
+- Arguments passés en copie -> pas d'effets de bord
+- Evalués avant l'appel
+## Call by reference
+- Pointeurs passés vers la valeur -> modification de la donnée
+- Attention si 2x le même pointeur
+## Call by value-result
+Ada `in out`
+- Arguments évalués à l'appel de la fonction et passés en copie
+- Arguments recopiés à la fin de la fonction (modifiés ou pas)
+ALGOL-W :
+- Arguments évalués et copiés à l'appel
+- Arguments ré-évalués au retour pour la recopie
+## Call by name
+Arguments évalués à chaque utilisation
+## Call by need
+-> Lazy initialization \ No newline at end of file