From 85f27b860ed78cbe3ebedb5b5540962461393266 Mon Sep 17 00:00:00 2001 From: marcellus Date: Sat, 21 Jun 2025 16:30:52 +0200 Subject: update: Saturday 6 June, 16:30:52 from IUseArchBTW --- TYLA/Subprograms.md | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'TYLA/Subprograms.md') 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 -- cgit v1.2.3