From 51bf1b7c8e3525ab6bdf759e8d3aaa9ee5ec5a11 Mon Sep 17 00:00:00 2001 From: marcellus Date: Thu, 22 May 2025 10:56:47 +0200 Subject: update: Thursday 4 May, 10:56:47 from IUseArchBTW --- TYLA/Subprograms.md | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 TYLA/Subprograms.md 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 -- cgit v1.2.3