Pemrograman fungsional

Dalam ilmu komputer, pemrograman fungsional (bahasa Inggris: Functional programming) adimana 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.

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 

Istilah komputer
Paradigma pemrograman