Partons de fonctions régulières comme celles que nous avons vues dans un chapitre précédent :
# fonction qui renvoie le carré du nombre passé en paramètre
def carre(x):
return x * x
# fonction qui renvoie la puissance d'un nombre (le nombre et la puissance sont passés
# en paramètres)
def puissance(x,y):
return x ** y # renvoie le résultat de x à la puissance y
# utilisation de ces fonctions dans la partie principale du programme
print(carre(3)) # renvoie 9
print(carre(12)) # renvoie 144
print(puissance(2,3)) # renvoie 8 (2 à la puissance 3)
Il est possible de faire la même chose avec le code suivant :
## fonctions lambda
carre_l = lambda x:x*x
print(carre_l(3)) # renvoie 9
puissance_l = lambda x,y:x**y
print(puissance_l(2,3)) # renvoie 8
Comprendre le programme :
Quel intérêt ?
Une limite cependant :
On peut encore optimiser ce code :
carre = (lambda x:x*x)(3)
print(carre) # renvoie 9
puissance = (lambda x,y:x**y)(2,3)
print(puissance) # renvoie 8