La programmation fonctionnelle avec Scala
Fonctions d'ordre supérieur
Tout est fonction… donc un paramètre est une fonction. Réciproquement une fonction est un paramètre.
C'est l'idée qu'utilise les fonctions d'ordre supérieur.
Définition Une fonction d'ordre supérieur est une fonction qui respecte au moins une de ces propriétés :
- Prendre une ou plusieurs fonctions comme entrée.
- Renvoyer une fonction.
Exemple une fonction retournant la somme des images de deux entiers par f (appelé avec la fonction fac vue précédemment):
fonctions anonymes
À première vue utiliser une fonction d'ordre supérieur peut paraître lourd. En effet cela implique souvent d'écrire une fonction ou des fonctions à usage unique.
Pour cela on utilise des fonctions anonymes. Leur déclaration est écourtée : elles n'ont pas de nom et ne sont pas préfixées par le mot clef «def». Nous verrons avec les listes que celà peut être très utile pour traiter une collection.
Exemple : l'appel de notre fonction Sum avec une fonction identité anonyme.
Remarque : en Scala le carcatère de fin de ligne «;» est facultatif mais peut être utilisé pour faire des fonctions anonymes de plusieurs lignes.