W języku Python lambda jest słowem kluczowym dzięki któremu możemy deklarować funkcje anonimowe. W poprzednich wpisach wykorzystałem domknięcia i callable do obliczania potęgi, w przypadku lambdy może to wyglądać tak
1 2 3 4 5 |
power = lambda b, e: b ** e print(power(2,2)) # 4 |
Lambdy można domknąć
1 2 3 4 5 6 7 8 |
def power_of(base): return lambda exponent: base ** exponent power_of_two = power_of(2) print(power_of_two(3)) # 8 |
Lambda możne również zwrócić lambdę. Jest to karkołomna konstrukcja ale jak najbardziej prawidłowo działająca
1 2 3 4 5 |
power = lambda base : lambda exponent: base ** exponent print(power(3)(2)) # 9 |
Kiedy stosować lambdę? Np. w metodach map, filter, reduce i innych przyjmujących funkcję lub wtedy gdy tą funkcję wykonujemy tylko raz.