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:

pythondef 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:

pythondef square(num):
  return num ** 2

Şimdi func parametrelerine bir sayı listesi ve geri çağırma işlevi olarak square fonksiyonunu iletelim:

pythonprint( func([1, 2, 3], square) )

Konsola, sayıların karelerinden oluşan yeni bir liste yazdırılacaktır:

python[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:

pythonlambda fonksiyon_parametresi: fonksiyon_parametresi_ile_yapılan_işlem

Şimdi square fonksiyonunu lambda fonksiyonu kullanarak yeniden yazalım ve onu func parametresine iletelim:

pythonprint( func([1, 2, 3], lambda num: num ** 2) )

Lambda fonksiyonu bir değişkene yazılabilir:

pythonsquare = lambda num: num ** 2
print( func([1, 2, 3], square) )
Задание 1

Aşağıdaki kodu lambda fonksiyonu ile yeniden yazın:

pythondef func(num, clb):
  return clb(num)

def clb(num):
  return num + 1
  
print( func(2, clb) )
Задание 2

Aşağıdaki kodu lambda fonksiyonu ile yeniden yazın:

pythondef 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) )
Задание 3

Aşağıdaki kodu lambda fonksiyonu ile yeniden yazın:

pythondef func(num1, num2, clb):
  res = clb(num1) + num2
  return res
  
def clb(num):
  return num ** 3
  
print(func(2, 6, clb))