Fungsi Lambda di Python
Misalkan kita memiliki fungsi func,
yang parameternya menerima sebuah list dan
sebuah callback. Fungsi ini akan membuat
list baru dari elemen list asli. Pada
setiap elemen akan diterapkan
callback-nya:
def func(lst, callback):
res = []
for el in lst:
res.append(callback(el))
return res
Sekarang mari buat fungsi square,
yang akan memangkatkan angka yang
diberikan padanya menjadi kuadrat:
def square(num):
return num ** 2
Mari kita berikan parameter func
sebuah list angka dan fungsi square
sebagai callback:
print( func([1, 2, 3], square) )
Di konsol akan ditampilkan list baru, yang terdiri dari kuadrat angka-angka tersebut:
[1, 4, 9]
Namun, kode ini dapat disingkat secara signifikan
dengan menggunakan fungsi lambda
- fungsi anonim, yang dipanggil dengan
kata kunci lambda dan
ditulis dalam satu baris. Oleh karena itu, ke dalam
fungsi lambda hanya dapat ditulis ulang
fungsi-fungsi yang kodenya hanya membutuhkan satu baris.
Sintaks fungsi lambda terlihat seperti ini:
lambda parameter fungsi: operasi dengan parameter fungsi
Mari kita tulis ulang fungsi square
menggunakan fungsi lambda dan berikan ke
parameter func:
print( func([1, 2, 3], lambda num: num ** 2) )
Fungsi lambda dapat ditulis ke dalam variabel:
square = lambda num: num ** 2
print( func([1, 2, 3], square) )
Tulis ulang kode berikut melalui fungsi lambda:
def func(num, clb):
return clb(num)
def clb(num):
return num + 1
print( func(2, clb) )
Tulis ulang kode berikut melalui fungsi lambda:
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) )
Tulis ulang kode berikut melalui fungsi lambda:
def func(num1, num2, clb):
res = clb(num1) + num2
return res
def clb(num):
return num ** 3
print(func(2, 6, clb))