Python >> Tutoriel Python >  >> Python

Calcul lambda en Python

Ce didacticiel présente une fonctionnalité avancée du langage :les fonctions lambda. Les fonctions lambda sont enracinées dans le domaine mathématique ducalcul lambda . L'église d'Alonzo était l'une des pionnières de cette région. Il a introduit les fonctions lambda en 1936 avant même l'apparition des premiers ordinateurs.

Les fonctions Lambda existent dans un large éventail de langages pour la programmation fonctionnelle. Ils ne sont pas seulement au cœur des langages de programmation fonctionnels, ils sont également à la base de nombreuses fonctionnalités avancées du langage Python.

Par exemple, le langage moderne Scala pour la programmation parallèle combine des éléments de langage traditionnels (par exemple de Java) avec des éléments fonctionnels (par exemple des fonctions lambda).

Exemples de calcul lambda

Avant de définir les fonctions lambda pour vous, apprenons par l'exemple ! En voici quelques-unes intéressantes :

>>> f = lambda x, y: x + y
>>> f(1, 2)
3
>>> f(2, 3)
5

Vous définissez une fonction lambda qui prend deux arguments d'entrée x et y , et renvoie la somme x + y .

Par exemple, vous pouvez l'utiliser pour passer une fonction dans une fonction :

>>> customers = ['Alice', 'Bob', 'Carl']
>>> ids = map(lambda name: name[:1], customers)
>>> list(ids)
['A', 'B', 'C']

La liste customers se compose de trois cordes. Vous définissez un map() fonction qui applique le premier argument de la fonction (les fonctions sont des objets !) à chaque élément de la liste. La fonction lambda transmise renvoie le premier caractère d'une chaîne à l'aide d'une opération de découpage de base.

Le calcul Lambda est terminé de Turing

La fonction lambda est Turing complète ce qui signifie que vous pouvez effectuer tous les calculs qu'un ordinateur peut effectuer, en utilisant uniquement les fonctions lambda ! Vous pouvez en savoir plus sur la théorie formelle du calcul lambda ici.

Alors, comment fonctionnent les fonctions Lambda ?

Une fonction lambda est une fonction anonyme sans identifiant. Après le lambda mot-clé, la fonction prend un ou plusieurs arguments arbitraires. Les arguments sont séparés par des virgules et terminés par deux-points. Après les deux-points suit une seule expression. Cependant, cette expression peut consister en des calculs complexes utilisant les variables d'argument spécifiées.

La fonction lambda renvoie alors le résultat de cette expression.

Par conséquent, les fonctions lambda sont des raccourcis syntaxiques pour une sous-classe de fonctions Python normales .

def make_incrementor(n):
    return lambda x: x + n

f = make_incrementor(42)
print(f(0))
print(f(1))

Dans l'extrait de code, la fonction make_incrementor crée une fonction lambda lors de l'exécution. La fonction lambda créée augmente un élément x par une valeur fixe n . Par exemple, la fonction incrémenteur du puzzle incrémente une valeur de 42. Nous attribuons cette fonction à la variable f . Puis on imprime les résultats en incrémentant les valeurs 0 et 1 par l'incrémenteur 42.

Vous pouvez résoudre ce casse-tête dans notre application de casse-tête interactive Finxter.com :


Cliquez sur le lien et testez vos compétences maintenant !

Vidéo associée :Fonctions Lambda