La funzione lambda in Python
Nel linguaggio Python la funzione lambda è una funzione anonima e personalizzabile.
lambda argomento: espressione
La funzione può essere definita con uno o più argomenti.
A cosa serve?
E' utile per definire una funzione all'interno di un'altra funzione.
Nota. La funzione lambda è un aspetto tipico della programmazione funzionale.
Un esempio pratico
Esempio
Definisco una semplice funzione che moltiplica per 2 l'argomento x
y = lambda x : x *2
Quindi, se passo l'argomento 5
print(y(5))
la funzione mi restituisce in output 10
10
Fin qui è semplice.
Esempio 2
Ora definisco una funzione lambda che somma due parametri tra loro e gli somma uno.
z = lambda x,y : x*y + 1
Quindi, se passo gli argomenti x=2 e y=3
print(z(2,3))
la funzione mi restituisce in output 7
7
E' un esempio di passaggio di più parametri.
Esempio 3 (funzione di funzione)
E' l'aspetto più interessante della funzione lambda.
Creo un anonima funzione che moltiplica l'argomento per una variabile non nota.
def myfunz(n):
return lambda a : a * n
Poi definisco una funzione raddoppia che incorpora myfunz con il parametro 2.
raddoppia = myfunz(2)
Infine, definisco una funzione triplica che incorpora myfunz con il parametro 3.
triplica = myfunz(3)
Quando utilizzo le funzioni raddoppia e triplica, python considera n=2 e a=2 per la prima, n=2 e a=3 per la seconda.
Pertanto, se chiamo raddoppia() con il parametro 5
print(raddoppia(5))
La funzione raddoppia(5) restituisce il risultato 10.
10
Se chiamo la funzione triplica() con il parametro 5, la funzione mi restituisce il valore 15.
15
E così via.