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]


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow