Pemrograman fungsional adalah sebuah gaya pemrograman yang didasarkan pada fungsi. Sebuah bagian kunci dari pemrograman fungsional adalah higher-order function. Higher-order function akan mengambil fungsi lain untuk dijadikan sebagai argumen.
Contoh 1 – Pemrograman Fungsional
Berikut contoh fungsi yang mengambil fungsi lain untuk dijadikan argumen.
def apply_duakali(func,arg):
return func(func(arg))
def tambah_lima(x):
return x + 5
print(apply_duakali(tambah_lima, 10))
=====>
20
=====>
Contoh 2 – Fungsi Murni dan Tidak Murni
Pemrograman fungsional berusaha menggunakan fungsi murni. Fungsi murni tidak memiliki efek samping dan mengembalikan sebuah nilai yang hanya tergantung pada argumennya.
#Fungsi Murni
def murni(x,y):
a = x+2*y
return a / (2*y+x)
print(murni(3,4))
#Fungsi Tidak Murni
daftar_nama = []
def tidak_murni(arg):
daftar_nama.append(arg)
tidak_murni("Zakky")
tidak_murni("Andi")
tidak_murni("Boy")
print(daftar_nama)
Karena fungsi di atas mengubah kondisi pada list daftar_nama, maka fungsi tersebut tidak murni.
Fungsi Murni
Kelebihan dan kekurangan menggunakan fungsi murni:
- Lebih mudah dinalar dan untuk penggunaan testing.
- Lebih efisien. Ketika fungsi dieveluasi untuk input, hasil dapat disimpan dan mengacu ke waktu selanjutnya dari fungsi pada input yang dibutuhkan. Mengurangi jumlah pemanggilan fungsi atau yg disebut momoization.
- Lebih mudah untuk dijalankan secara paralel.
Kekurangan atau kelemahan ketika hanya menggunakan fungsi murni adalah bahwa fungsi tersebut sangat mempersulit tugas I/O yang sebaliknya sederhana. Dan juga dalam situasi tertentu bisa saja lebih sulit untuk ditulis.
LANJUTKAN BACA MATERI LENGKAP