Chapitre 7. Les fonctions en tant qu'objets de première classe
Cet ouvrage a été traduit à l'aide de l'IA. Tes réactions et tes commentaires sont les bienvenus : translation-feedback@oreilly.com
Je n'ai jamais considéré Python comme étant fortement influencé par les langages fonctionnels, quoi qu'en disent ou en pensent les gens. J'étais beaucoup plus familier avec les langages impératifs tels que C et Algol 68 et même si j'avais fait des fonctions des objets de première classe, je ne considérais pas Python comme un langage de programmation fonctionnel.
Guido van Rossum, Python BDFL1
Fonctions en Python sont des objets de première classe. Les chercheurs en langage de programmation définissent un "objet de première classe" comme une entité de programme qui peut être.. :
-
Créé au moment de l'exécution
-
Attribué à une variable ou à un élément d'une structure de données.
-
Passé en tant qu'argument à une fonction
-
Renvoyé comme résultat d'une fonction
Les entiers, les chaînes de caractères et les dictionnaires sont d'autres exemples d'objets de première classe en Python - rien d'extraordinaire ici. Le fait que les fonctions soient des objets de première classe est une caractéristique essentielle des langages fonctionnels, tels que Clojure, Elixir et Haskell. Cependant, les fonctions de première classe sont si utiles qu'elles ont été adoptées par des langages populaires tels que JavaScript, Go et Java (depuis le JDK 8), dont aucun ne prétend être un "langage fonctionnel".