Une chose qui est vraiment importante pour cette question (et les réponses) est la suivante: qu'est-ce que l'enfer est la programmation fonctionnelle, et quelles sont les propriétés les plus importantes de celle-ci. Je vais essayer de vous donner mon avis:
La programmation fonctionnelle ressemble beaucoup à l'écriture de mathématiques sur un tableau blanc. Lorsque vous écrivez des équations sur un tableau blanc, vous ne pensez pas à un ordre d'exécution. Il n'y a (généralement) aucune mutation. Vous ne revenez pas le lendemain et regardez-le, et lorsque vous refaites les calculs, vous obtenez un résultat différent (ou vous pouvez, si vous avez bu du café frais :)). Fondamentalement, ce qui est au tableau est là, et la réponse était déjà là lorsque vous avez commencé à écrire des choses, vous n'avez tout simplement pas encore réalisé ce que c'était.
La programmation fonctionnelle ressemble beaucoup à cela; vous ne changez pas les choses, vous évaluez simplement l'équation (ou dans ce cas, "programme") et déterminez quelle est la réponse. Le programme est toujours là, non modifié. La même chose avec les données.
Je classerais les éléments suivants comme les caractéristiques les plus importantes de la programmation fonctionnelle: a) transparence référentielle - si vous évaluez la même déclaration à un autre moment et à un autre endroit, mais avec les mêmes valeurs de variable, cela signifiera toujours la même chose. b) aucun effet secondaire - peu importe combien de temps vous regardez le tableau blanc, l'équation qu'un autre gars regarde sur un autre tableau blanc ne changera pas accidentellement. c) les fonctions sont aussi des valeurs. qui peuvent être transmises et appliquées avec ou à d'autres variables. d) composition de la fonction, vous pouvez faire h = g · f et ainsi définir une nouvelle fonction h (..) qui équivaut à appeler g (f (..)).
Cette liste est dans mon ordre de priorité, donc la transparence référentielle est la plus importante, suivie par aucun effet secondaire.
Maintenant, si vous passez par python et vérifiez à quel point le langage et les bibliothèques prennent en charge et garantissent ces aspects - alors vous êtes en bonne voie pour répondre à votre propre question.