Dans la première partie de cet article consacré à la présentation du langage Scala, nous avions mis en avant les caractéristiques de son paradigme objet. Dans le second volet, nous allons passer en revue ses aspects fonctionnels avant de terminer par quelques mots sur son intégration avec le langage Java.
En plus d’être un langage objet pur, Scala est aussi un langage fonctionnel. Ainsi en Scala, tout est considéré comme étant une valeur que ce soit les variables ou les fonctions, et les valeurs sont des instances de classes. Les principes d’immuabilité et de transparence référentielle apportés par Scala prennent toute leur importance dans sa partie fonctionnelle. En effet, ils garantissent que l’appel à une fonction peut être remplacé par son résultat dans un fragment de code sans que cela change l’exécution de ce dernier.
Comme tout bon langage fonctionnel qui se respecte, Scala autorise les fonctions d’ordre supérieur. En clair, cela signifie qu’il est possible de définir des fonctions en prenant d’autres en paramètre et dont le résultat peut être également une fonction. Le fait que les fonctions soient considérées comme des valeurs prend ainsi tout son sens. Cette particularité issue du monde fonctionnel est un atout très puissant dans la trousse à outils du développeur Scala.
Sylvain Saurel