# 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