Pemrograman fungsional

Dalam ilmu komputer, pemrograman fungsional (bahasa Inggris: functional programming) aalah paradigma pemrograman di mana 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.

 Bahasa Pemrograman 
Contoh bahasa pemrograman yang mendukung pemrograman fungsional murni antara lain:
 Agda
 Clean
 Coq
 Elm
 Haskell
 Idris
 Lisp
 Miranda
 Mercury
 PureScript

Adapun contoh bahasa pemrograman yang mendukung pemrograman fungsional tidak murni antara lain:

 C++
 Clojure
 Elixir
 Erlang
 JavaScript
 Julia
 PHP
 Python
 Rust
 Scala

 Referensi 

Kategori:Istilah komputer
Kategori:Paradigma pemrograman