summaryrefslogtreecommitdiff
path: root/TYLA/Subprograms.md
diff options
context:
space:
mode:
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