Pemrograman fungsional: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
HsfBot (bicara | kontrib)
k Bot: Perubahan kosmetika
Menambah deskripsi pemrograman fungsional murni & tidak murni serta menambah lebih banyak contoh bahasa pemrograman yang mendukung pemrograman fungsional.
Baris 1:
{{DISPLAYTITLE:Pemrograman fungsional}}
[[Berkas:Haskell-Logo.svg|jmpl|316x316px|[[Haskell]] yang merupakan salah satu contoh [[bahasa pemrograman]] berperadigma pemrograman fungsional dan dikategorikan sebagai bahasa pemrograman fungsional munri.]]
Dalam [[ilmu komputer]], '''Pemrogramanpemrograman Fungsionalfungsional''' ([[Bahasabahasa Inggris]] : ''Functional Programmingprogramming,'' disingkat '''FP''') adalah [[paradigma pemrograman]] yang dimana suatu [[program komputer]] dijalankan dengan mengevaluasi [[Ekspresi (ilmu komputer)|ekspresi]] yang terdapat pada program komputer itu sendiri.<ref>{{Cite web|url=https://wiki.haskell.org/Functional_programming|title=Functional programming - HaskellWiki|website=wiki.haskell.org|language=en|access-date=2018-02-14}}</ref>.
 
Pemrograman fungsional biasanya menggunakan fungsi yang murni agar dapat menghindari [[data]] yang dapat berubah-ubah, efek samping dari dijalankannya fungsi, dan [[Variabel (ilmu komputer)|variabel]] yang dapat diakses dari lebih dari satu fungsi.<ref>{{Cite web|url=https://medium.com/javascript-scene/master-the-javascript-interview-what-is-functional-programming-7f218c68b3a0|title=Master the JavaScript Interview: What is Functional Programming?|last=Elliott|first=Eric|date=2017-01-04|website=Medium|access-date=2018-02-14}}</ref>
 
Pemrograman fungsional dikategorikan menjadi '''pemrograman fungsional murni''' dan '''pemrograman fungsional tidak murni'''. Sederhananya, pemrograman fungsional murni mengacu pada pemrograman yang mana suatu fungsinya hanya dapat mengelola masukannya lalu memberikan semacam keluaran berdasarkan masukan tersebut. Artinya, fungsi tersebut tidak diizinkan untuk mengambil nilai pengubah global, melakukan pencetakan pesan ke layar, dan hal-hal lain yang termasuk pada istilah efek samping (''side effect'') pada pemrograman fungsional.<ref>{{Cite journal|last=Wadler|first=Philip|date=1992-02-01|title=The essence of functional programming|url=http://dl.acm.org/citation.cfm?id=143165.143169|publisher=ACM|pages=1–14|doi=10.1145/143165.143169|isbn=0897914538}}</ref>
 
== Bahasa Pemrograman ==
Contoh bahasa pemrograman yang mendukung pemrograman fungsional murni antara lain:
* [[SchemeAgda]]
* [[Lisp]] (List Programming)
*[[Clean (bahasa pemrograman)|Clean]]
* [[Scheme]]
*[[Coq]]
* [[ML]] (Meta Language)
*[[Elm (bahasa pemrograman)|Elm]]
* [[Haskell]]
*[[Idris (bahasa pemrograman)|Idris]]
*[[Lisp]]
*[[Miranda (bahasa pemrograman)|Miranda]]
*[[Mercury (bahasa pemrograman)|Mercury]]
*[[PureScript]]
 
Adapun contoh bahasa pemrograman yang mendukung pemrograman fungsional tidak murni antara lain:
 
* [[C++]]
* [[Clojure]]
* [[Elixir]]
* [[Erlang]]
* [[JavaScript]]
* [[Julia (bahasa pemrograman)|Julia]]
* [[PHP]]
* [[Python (bahasa pemrograman)|Python]]
* [[Rust (bahasa pemrograman)|Rust]]
* [[Scala (bahasa pemrograman)|Scala]]
 
== Referensi ==
Baris 18 ⟶ 40:
 
[[Kategori:Istilah komputer]]
[[Kategori:Paradigma pemrograman]]