Python'da Lambda Fonksiyonu
Bir liste ve bir geri çağırma işlevi
parametre olarak alan bir func
fonksiyonumuz olduğunu varsayalım.
Fonksiyon, orijinal listenin
elemanlarından yeni bir liste
oluşturacaktır. Bu sırada her bir
elemana geri çağırma işlevi
uygulanacaktır:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
Şimdi, kendisine iletilen sayının
karesini alacak olan square
fonksiyonunu oluşturalım:
def square(num):
return num ** 2
Şimdi func parametrelerine bir sayı
listesi ve geri çağırma işlevi olarak
square fonksiyonunu iletelim:
print( func([1, 2, 3], square) )
Konsola, sayıların karelerinden oluşan yeni bir liste yazdırılacaktır:
[1, 4, 9]
Ancak bu kod, lambda fonksiyonu
kullanılarak önemli ölçüde
kısaltılabilir - bu, lambda
anahtar kelimesi kullanılarak çağrılan
ve tek bir satırda yazılan anonim bir
fonksiyondur. Bu nedenle, lambda
fonksiyonuna yalnızca kodu tek satır
kaplayan fonksiyonlar yeniden
yazılabilir.
Lambda fonksiyonunun sözdizimi şu şekildedir:
lambda fonksiyon_parametresi: fonksiyon_parametresi_ile_yapılan_işlem
Şimdi square fonksiyonunu lambda
fonksiyonu kullanarak yeniden yazalım ve
onu func parametresine iletelim:
print( func([1, 2, 3], lambda num: num ** 2) )
Lambda fonksiyonu bir değişkene yazılabilir:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Aşağıdaki kodu lambda fonksiyonu ile yeniden yazın:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Aşağıdaki kodu lambda fonksiyonu ile yeniden yazın:
def func(num, clb1, clb2):
return (clb1(num), clb2(num))
def clb1(num):
return num + 1
def clb2(num):
return num - 1
print( func(2, clb1, clb2) )
Aşağıdaki kodu lambda fonksiyonu ile yeniden yazın:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))