Python-da Lambda Funksiyasi
Tutaq ki, bizim parametr kimi siyahı və
callback qəbul edən func adlı funksiyamız var.
Funksiya orijinal siyahının elementlərindən yeni
siyahı yaradacaq. Bu zaman
hər bir elementə callback tətbiq olunacaq:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
İndi isə önünə verilən ədədi kvadrata yüksəldən
square funksiyasını yaradaq:
def square(num):
return num ** 2
Gəlin func-ın parametrlərinə ədədi siyahını və
callback kimi square funksiyasını ötürək:
print( func([1, 2, 3], square) )
Konsola ədədlərin kvadratlarından ibarət yeni siyahı çıxacaq:
[1, 4, 9]
Lakin bu kodu lambda funksiyası istifadə edərək
əhəmiyyətli dərəcədə qısaltmaq olar
- bu, lambda açar sözü ilə çağırılan və
bir sətirdə yazılan anonim funksiyadır. Buna görə də
lambda funksiyasına yalnız kodu bir sətir tutan
funksiyaları yenidən yazmaq olar.
Lambda funksiyasının sintaksisi belə görünür:
lambda funksiya parametri: funksiya parametri ilə əməliyyat
Gəlin square funksiyasını lambda funksiyası ilə yenidən yazaq
və onu func-ın parametrinə ötürək:
print( func([1, 2, 3], lambda num: num ** 2) )
Lambda funksiyasını dəyişənə yazmaq olar:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Aşağıdakı kodu lambda funksiyası ilə yenidən yazın:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Aşağıdakı kodu lambda funksiyası ilə yenidən 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ğıdakı kodu lambda funksiyası ilə yenidən yazın:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))