summaryrefslogtreecommitdiff
path: root/TYLA/Subprograms.md
blob: 4790ecd3d4320c91355ff6c56477cb969e5f1113 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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