Pemrograman fungsional
Dalam ilmu komputer, pemrograman fungsional (bahasa Inggris: functional programming) aalah paradigma pemrograman dimana program dibangun dengan menerapkan dan menyusun fungsi. Ini adalah paradigma pemrograman deklaratif di mana definisi fungsi adalah pohon ekspresi yang masing-masing mengembalikan nilai, bukan urutan pernyataan imperatif yang mengubah status program.
Dalam pemrograman fungsional, fungsi diperlakukan sebagai warga kelas satu, yang berarti bahwa mereka dapat terikat ke nama (termasuk pengenal lokal), diteruskan sebagai argumen, dan dikembalikan dari fungsi lain, seperti yang bisa dilakukan tipe data lainnya. Hal ini memungkinkan program untuk ditulis dalam gaya deklaratif dan dapat disusun, di mana fungsi-fungsi kecil digabungkan secara modular..
Pemrograman fungsional terkadang diperlakukan sebagai sinonim dengan pemrograman fungsional murni, bagian dari pemrograman fungsional yang memperlakukan semua fungsi sebagai fungsi matematika deterministik, atau fungsi murni. Ketika fungsi murni dipanggil dengan beberapa argumen yang diberikan, itu akan selalu mengembalikan hasil yang sama, dan tidak dapat dipengaruhi oleh keadaan yang bisa berubah atau efek samping lainnya.
Ini berbeda dengan prosedur tidak murni, yang umum dalam pemrograman imperatif, yang dapat memiliki efek samping (seperti mengubah status program atau mengambil masukan dari pengguna). Pendukung pemrograman fungsional murni mengklaim bahwa dengan membatasi efek samping, program dapat memiliki lebih sedikit bug, lebih mudah di-debug dan diuji, dan lebih cocok untuk verifikasi formal.[1]
Bahasa Pemrograman
Contoh bahasa pemrograman yang mendukung pemrograman fungsional murni antara lain:
Adapun contoh bahasa pemrograman yang mendukung pemrograman fungsional tidak murni antara lain:
Referensi
- ^ Hudak, Paul (September 1989). "Conception, evolution, and application of functional programming languages" (PDF). ACM Computing Surveys. 21 (3): 359–411. doi:10.1145/72551.72554. S2CID 207637854. Diarsipkan dari asli (PDF) tanggal 2016-01-31. Diakses tanggal 2013-08-10.