Fonctionnels

De FL, GY!
Aller à : navigation, rechercher


Un point de vue de Microsoft


La raison principale pour implémenter des transformations fonctionnelles en tant que fonctions pures est que celles-ci sont composables, autrement dit autonomes et sans état. Ces caractéristiques apportent un certain nombre d'avantages, notamment les suivants :


  • Une meilleure lisibilité et facilité de maintenance. Cela est dû au fait que chaque fonction est conçue pour accomplir une tâche spécifique étant donné ses arguments. La fonction ne repose pas sur un état externe.


  • Un développement réitératif plus simple. Le code étant plus facile à refactoriser, les modifications de conception sont souvent plus faciles à implémenter. Par exemple, supposez que vous écrivez une transformation compliquée et que vous vous rendez compte par la suite que du code est répété à plusieurs reprises dans la transformation. Si vous refactorisez par le biais d'une méthode pure, vous pouvez appeler votre méthode pure comme bon vous semble sans vous soucier des effets secondaires.


  • Une plus grande facilité de test et de débogage. Les fonctions pures étant plus faciles à tester de manière isolée, vous pouvez écrire du code test qui appelle la fonction pure avec des valeurs typiques, des cases de bord valides et des cases de bord non valides.


Dans la programmation traditionnelle orientée objets (OOP), la plupart des développeurs sont habitués à programmer dans le style impératif/procédural. Pour résoudre les problèmes, ils conçoivent des hiérarchies de classes, se concentrent sur l'encapsulation correcte et pensent en termes de contrats de classes. Le comportement et l'état des types d'objets sont essentiels et les caractéristiques de langage, telles que les classes, les interfaces, l'héritage et le polymorphisme, sont fournies pour mieux gérer ces problèmes.

Pour passer au développement de style fonctionnel pur, ils doivent modifier leur manière de pensée et leur approche du développement. Par contraste, la programmation fonctionnelle traite les problèmes de calcul comme un exercice d'évaluation de transformations fonctionnelles pures de collectes de données. La programmation fonctionnelle évite l'état et les données mutables, et insiste plutôt sur l'application de fonctions.