La programmation fonctionnelle avec Scala
Le filtrage par motif
Scala intègre de nombreux outils permettant de faire du filtrage par motif (dont les célèbres expressions régulières). Il intègre également match ressemblant au match d'OCaml (à ce titre. L'instruction match est un switch sur-vitaminé. Il cherche parmi plusieurs cas celui correspondant à la variable examinée. Chaque cas est une variable (typée ou non) avec éventuellement une propriété qui doit être vérifiée.
Exemple : ici on utilise une instruction match pour transformer des chiffres en chaine de charactères
«_» est ici utilisé pour reconnaître n'importe quel entier
C'est en fait une variable pouvant être réutilisée.
Comme nous allons le voir dans cet exemple pour calculer la longueur d'une liste:
Le premier cas est le cas d'arrêt de la récursion : une liste vide.
Le deuxième cas est la déconstruction de la liste en deux variables. «_» la variable en tête de liste et «tail» une variable représentant la suite de la liste.
On peut également matcher sur un type de variable ou la vérificaton d'une condition. Dans un match une condition est appelée garde
Comme dans l'exemple suivant:
Attention ce code peut «planter» car toutes les entrées possibles ne sont pas couvertes. De plus son utilité reste à trouver.
Et voici un dernier exemple montrant l'utilisation d'un trait et de case class pour faire un mini évaluateur d'expression :

Le trait permet de partager entre tous les case class le code de la méthode eval.