Maison  >  Article  >  développement back-end  >  Comment la programmation fonctionnelle est-elle implémentée en Python ?

Comment la programmation fonctionnelle est-elle implémentée en Python ?

王林
王林original
2023-10-25 08:40:56720parcourir

Comment la programmation fonctionnelle est-elle implémentée en Python ?

Comment la programmation fonctionnelle est-elle implémentée en Python ?

La programmation fonctionnelle (FP) est un paradigme de programmation qui se concentre sur le fonctionnement et la combinaison de fonctions. Par rapport à la programmation impérative traditionnelle, la programmation fonctionnelle se concentre davantage sur la valeur de retour d'une fonction plutôt que sur le changement de processus ou d'état. En tant que langage de programmation multi-paradigmes, Python fournit également une multitude d'outils de programmation fonctionnelle et de sucre de syntaxe pour faciliter l'utilisation des idées de programmation fonctionnelle par les développeurs.

1. Les fonctions sont des citoyens de première classe

Dans la programmation fonctionnelle, les fonctions sont considérées comme des citoyens de première classe. Elles peuvent être assignées comme des valeurs, transmises comme paramètres et peuvent être renvoyées comme valeurs de retour. Les fonctions en Python peuvent être facilement attribuées à des variables et donc utilisées comme des variables.

def add(x, y):
    return x + y

add_func = add
print(add_func(2, 3))  # 输出5

Dans le code ci-dessus, la fonction add est affectée à la variable add_func, puis la fonction peut être appelée via add_func.

2. Fonctions d'ordre supérieur

Les fonctions d'ordre supérieur font référence à des fonctions qui peuvent accepter une ou plusieurs fonctions comme paramètres, ou peuvent renvoyer une fonction. Python fournit certaines fonctions intégrées d'ordre élevé, telles que mapper, filtrer, réduire, etc.

  1. fonction map

La fonction map peut appliquer une fonction à chaque élément d'un objet itérable et renvoyer un résultat itérable.

numbers = [1, 2, 3, 4, 5]

def square(x):
    return x**2

squared_numbers = map(square, numbers)
print(list(squared_numbers))  # 输出[1, 4, 9, 16, 25]

Dans le code ci-dessus, la fonction map applique la fonction carré à chaque élément de la liste de nombres et renvoie le résultat du calcul sous forme de liste itérable.

  1. Fonction de filtre

La fonction de filtre peut filtrer chaque élément de l'objet itérable via une fonction et renvoyer uniquement les éléments qui remplissent les conditions.

numbers = [1, 2, 3, 4, 5]

def is_even(x):
    return x % 2 == 0

even_numbers = filter(is_even, numbers)
print(list(even_numbers))  # 输出[2, 4]

Dans le code ci-dessus, la fonction de filtre applique la fonction is_even à chaque élément de la liste de nombres et renvoie les éléments qui remplissent les conditions sous forme de liste itérable.

  1. fonction de réduction

La fonction de réduction applique une fonction à tous les éléments d'un objet itérable et accumule les résultats.

from functools import reduce

numbers = [1, 2, 3, 4, 5]

def add(x, y):
    return x + y

sum = reduce(add, numbers)
print(sum)  # 输出15

Dans le code ci-dessus, la fonction de réduction applique la fonction d'ajout à tous les éléments de la liste de nombres et les accumule.

3. Fonction anonyme

La fonction anonyme est une fonction sans nom, également appelée fonction lambda. En programmation fonctionnelle, les fonctions anonymes sont souvent utilisées avec des fonctions d'ordre supérieur.

numbers = [1, 2, 3, 4, 5]

squared_numbers = map(lambda x: x**2, numbers)
print(list(squared_numbers))  # 输出[1, 4, 9, 16, 25]

even_numbers = filter(lambda x: x % 2 == 0, numbers)
print(list(even_numbers))  # 输出[2, 4]

Dans le code ci-dessus, la fonction lambda est utilisée pour remplacer la fonction carrée et la fonction is_even précédemment définies.

4. Fermeture

Une fermeture fait référence à une fonction qui peut mémoriser et accéder aux variables dans sa portée lexicale. En programmation fonctionnelle, les fermetures peuvent être utilisées pour stocker un état ou encapsuler des données.

def outer_function(x):
    def inner_function(y):
        return x + y
    return inner_function

add_five = outer_function(5)
print(add_five(3))  # 输出8

Dans le code ci-dessus, external_function renvoie une fermeture inner_function et enregistre le paramètre x en interne. add_five agit comme une fermeture qui mémorise la valeur de x et fonctionne avec les paramètres transmis lors de son appel.

Résumé : La programmation fonctionnelle en Python est implémentée via des fonctionnalités telles que des fonctions telles que des citoyens de première classe, des fonctions d'ordre supérieur, des fonctions anonymes et des fermetures. Ces fonctionnalités permettent aux développeurs d'appliquer de manière plus pratique et plus flexible les idées de programmation fonctionnelle à la conception des programmes, améliorant ainsi la lisibilité et la maintenabilité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn