summaryrefslogtreecommitdiff
path: root/TYLA/Subprograms.md
diff options
context:
space:
mode:
authormarcellus <msimon_fr@hotmail.com>2025-06-06 12:58:10 +0200
committermarcellus <msimon_fr@hotmail.com>2025-06-06 12:58:10 +0200
commit83c47453ad1705477d707bbf0b1bffa32e057ab1 (patch)
tree5b155aab3a7470db9125f5ce71875e342d87acd5 /TYLA/Subprograms.md
parent147394e7692bdf77f041e4b9bd9ff0daac1ee9c7 (diff)
parent07ca5a5d24c7aa87c923e9bd6091480ad407827a (diff)
Merge remote-tracking branch 'origin/master'
Diffstat (limited to 'TYLA/Subprograms.md')
-rw-r--r--TYLA/Subprograms.md29
1 files changed, 29 insertions, 0 deletions
diff --git a/TYLA/Subprograms.md b/TYLA/Subprograms.md
new file mode 100644
index 0000000..4790ecd
--- /dev/null
+++ b/TYLA/Subprograms.md
@@ -0,0 +1,29 @@
+# Procédures
+- Sous-programmes sans valeur retournée
+- Effets de bords nécessaires
+# Fonctions
+- Sous-programmes retournant une valeur
+- Sans effets de bord
+Certains langages n'ont pas la distinction (retour null/None...)
+# Methodes
+Procédures associées à une entité, prise en argument implicitement
+# Pointeurs de fonction
+Le code d'une fonction est en mémoire et a donc une adresse
+# Objets fonctionnels
+e.g. C++
+Permettent de garder un état préservé entre les appels
+# Closures
+Fonction capturant des variables non locales appelées environnement
+Paire `{function_ptr, env}`
+# Lambdas
+Combinaise d'une fonction anonyme et d'une closure
+# Arguments
+- **argument formel** : argument dans la déclaration du sous-programme
+- **argument effectif** : argument dans l'appel du sous-programme
+- **paramètres** : réservés à la généricité
+# Applications partielles
+Passage d'une partie des arguments au sous-programme pour renvoyer une fonction prenant le reste des arguments
+# 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