# lambda function
def f_kuadrat(angka):
return angka**2
print(f"Hasil fungsi kuadrat = {f_kuadrat(3)}")
print()
# menggunakan lambda function
# output = lambda argument : expression
kuadrat = lambda angka:angka**2
print(f"Hasil fungsi kuadrat menggunakan lambda = {kuadrat(5)}")
print()
pangkat = lambda num,pow:num**pow
print(f"Hasil lambda pangkat = {pangkat(8,2)}")
print()
# kegunaan lmbda
# 1. sorting untuk list biasa
data_list = ["abdul","muis","am","alan","nama"]
data_list.sort()
print(f"sorting data {data_list}")
print()
# sorting dia pakai panjang (banyaknya huruf dalam satu kata)
def panjang_nama(nama):
return len(nama)
data_list.sort(key=panjang_nama)
print(f"sorted list by panjang = {data_list}")
print ()
data_list.sort(key=len)
print(f"sorted list by len = {data_list}")
print ()
# sort pakai lamdba
data_list = ["abdul","muis","am","alan","nama","zainal","amiruddin"]
data_list.sort(key=lambda nama:len(nama))
print(f"sorted list by lambda = {data_list}")
print()
# filter
data_angka = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
def kurang_dari_lima(angka):
return angka <= 5
data_angka_baru = list(filter(kurang_dari_lima,data_angka))
data_angka_baru_lambda = list(filter(lambda x:x<=7,data_angka))
print(f"Hasil filter angka tanpa lambda = {data_angka_baru}")
print(f"Hasil filter angka dengan lambda = {data_angka_baru_lambda}")
print()
# kasus genap
data_genap = list(filter(lambda x:(x%2==0),data_angka))
print(f"Hasil angka genap lambda = {data_genap}")
# kasus ganjil
data_ganjil = list(filter(lambda x:(x%2!=0),data_angka))
print(f"Hasil angka ganjil lambda = {data_ganjil}")
# kelipatan 3
data_lipat_3 = list(filter(lambda x:(x%3==0),data_angka))
print(f"Hasil angka kelipatan 3 lambda = {data_lipat_3}")
print()
# anonymous function
# currying <- Haskell Curry
def pangkat(angka,n):
hasil = angka**n
return hasil
data_hasil = pangkat(5,2)
print(f"fungsi biasa = {data_hasil}")
print()
# dengan currying
def pangkat(n):
return lambda angka:angka**n
pangkat2 = pangkat(2)
print(f"pangkat 2 = {pangkat2(5)}")
pangkat3 = pangkat(3)
print(f"pangkat 3 = {pangkat3(2)}")
print(f"pangkat bebas = {pangkat(2)(4)}")
Tidak ada komentar:
Posting Komentar