Fungsi Lambda

Fungsi Lambda atau dikenal juga sebagai Anonymous Function — seperti namanya — adalah fungsi yang dapat didefinisikan dan dipanggil tanpa memberikan nama. Awalnya, saya juga bingung, “Kenapa harus membuat fungsi tanpa diberi nama?” Lalu, saya coba cari tahu di Quora tentang ini.

Programmer’s problem

Seperti yang ditunjukkan pada diagram di atas, seorang programmer biasanya mengalami kesulitan untuk menamai variabel atau fungsi yang dibuat. Kebiasaan untuk menyelesaikan masalah dengan divide and conquer, mengharuskan programmer membuat fungsi-fungsi kecil demi menjaga keterbacaan kode yang ditulis dan memudahkan penyelesaian masalah secara keseluruhan. Nah, di sinilah fungsi lambda bisa sangat membantu.

Fungsi lambda sangat terlihat gunanya untuk operasi-operasi yang dilakukan terhadap array atau list — dalam istilah Python. Misalnya, kita mempunyai list

foo = ['satu', 'dua', 'tiga', 'empat']

yang akan kita urutkan berdasarkan panjang katanya. Solusi yang biasa kita lakukan adalah dengan menghitung panjang dari masing-masing elemen, memasangkan elemen dengan panjangnya, baru kemudian mengurutkan elemen sesuai dengan panjangnya — saya bahkan belum berhasil mengimplementasikannya dalam waktu singkat. Nah, fungsi lambda memberikan penyelesaian secara elegan.

foo.sort(key=lambda x: len(x))

Bagian

lambda x: len(x)

itu bisa disamakan dengan

f(x) = len(x)

Asyik kan?

Nah, fungsi lambda ini biasanya digunakan pada higher-order function  — i.e. fungsi yang menggunakan fungsi sebagai salah satu masukanseperti map(), filter(), dan fold(). Dengan adanya fungsi lambda, kita tidak perlu mendefinisikan fungsi yang dijadikan masukan secara tersendiri kalau hanya akan digunakan sekali. Untuk lebih jelasnya, silakan cek ke sini.

Tidak semua bahasa pemrograman mempunyai fitur fungsi lambda ini. Di Python sendiri, fungsi lambda dikatakan crippled jika dibandingkan dengan fungsi lambda pada bahasa pemrograman dengan paradigma fungsional seperti Haskell. Saya sendiri belum tahu di sebelah mana cacatnya, karena ini juga baru sedikit sekali yang saya ketahui tentang fungsi lambda. Mungkin di kesempatan lain saya akan coba berbagi kalau sudah ditemukan jawabannya.

Bye, world!

Iklan

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s