Python Language
Programmation fonctionnelle en Python
Recherche…
Introduction
La programmation fonctionnelle décompose un problème en un ensemble de fonctions. Idéalement, les fonctions ne prennent que des entrées et produisent des sorties, et n'ont pas d'état interne qui affecte la sortie produite pour une entrée donnée.
Fonction Lambda
Une fonction anonyme, définie avec lambda. Les paramètres du lambda sont définis à gauche du côlon. Le corps de la fonction est défini à droite du côlon. Le résultat de l'exécution du corps de la fonction est (implicitement) renvoyé.
s=lambda x:x*x
s(2) =>4
Fonction de la carte
Map prend une fonction et une collection d'éléments. Il crée une nouvelle collection vide, exécute la fonction sur chaque élément de la collection d'origine et insère chaque valeur de retour dans la nouvelle collection. Il renvoie la nouvelle collection.
Ceci est une carte simple qui prend une liste de noms et retourne une liste des longueurs de ces noms:
name_lengths = map(len, ["Mary", "Isla", "Sam"])
print(name_lengths) =>[4, 4, 3]
Réduire la fonction
Réduire prend une fonction et une collection d'éléments. Il renvoie une valeur créée en combinant les éléments.
C'est une simple réduction. Il renvoie la somme de tous les éléments de la collection.
total = reduce(lambda a, x: a + x, [0, 1, 2, 3, 4])
print(total) =>10
Fonction de filtre
Le filtre prend une fonction et une collection. Il renvoie une collection de chaque élément pour lequel la fonction a renvoyé True.
arr=[1,2,3,4,5,6]
[i for i in filter(lambda x:x>4,arr)] # outputs[5,6]