Jika pada tulisan sebelumnya telah dibahas tentang paradigma pemrograman lojik dengan salah satu contoh bahasa pemrograman Prolog, maka pada tulisan kali ini akan coba dibahas tentang paradigma pemrograman fungsional serta salah satu bahasa pemrograman yang menganut paham ini.
Seperti kita ketahui, paradigma pemrograman sendiri dibagi menjadi beberapa macam yaitu
- Paradigma pemrograman fungsional
- Paradigma pemrograman prosedural
- Paradigma pemrograman berorientasi objek
- Paradigma pemrograman konkuren
- Paradigma pemrograman Lojik
Fungsional, seperti namanya, maka bahasa pemrograman yang menggunakan paradigma ini dalam menyelesaikan masalah didasari dengan konsep pemetaan dan fungsi matematika. Dalam menyelesaikan persoalan, setiap penyelesaian didasarkan pada teori fungsi matematika, dimana proses komputasinya diperlakukan sebagai evaluasi fungsi matematika. Cara pemrograman ini menjadikan program lebih expresif, dan lebih sedikit mengunakan baris code. Pemrograman fungsional mempunyai karakteristik yang tidak bergantung pada data yang berada diluar fungsi itu sendiri dan tidak mengubah data diluar fungsi itu tadi. Pemrograman fungsional juga membawa gaya baru dalam menulis kode sehingga bisa lebih menghemat baris kode
Salah satu bahasa pemrograman fungsional murni adalah Haskell. Nama bahasa pemrograman Haskell diambil dari nama seseorang matematikawan Haskell Curry, yang terkenal akan karyanya di bidang combinatory logic. Haskell hanya mengenal expression dan equation. Haskell disebut 'murni' karena bahasa ini tidak memperbolehkan adanya efek samping (Efek samping adalah sesuatu yang mempengaruhi "bagian" di program. Misalnya suatu fungsi yang mencetak sesuatu ke layar yang mempengaruhi nilai dari variabel global. Tentu saja, suatu bahasa pemrograman yang tanpa efek samping akan menjadi sangat tidak berguna; Haskell menggunakan sebuah system monads untuk mengisolasi semua komputasi kotor dari program dan menampilkannya dengan cara yang aman. Haskell disebut bahasa 'fungsional' karena evaluasi dari programnya sama dengan mengevaluasi sebuah fungsi dalam bahasa matematika murni. Hal ini juga yang membedakannya dari bahasa standard (seperti C dan Java) yang mengevaluasi sederetan pernyataan secara urut (inilah pola dari bahasa terstruktur ) Yang termasuk dalam bahasa pemrograman fungsional antara lain Lisp, Scheme, Erlang, Clean, Mercury, ML, OCaml, SQL, XSL dan lain-lain. Di antara bahasa fungsional tersebut, Haskell merupakan bahasa yang ideal dalam banyak hal
Haskell bisa digunakan untuk pengembangan program berbasi CLi, Web Development, Game Development, dsb. Haskell biasanya digunakan untuk kepentingan Distributed System.
Contoh perintah Haskell yang di eksesekusi secara online di https://tryhaskell.org/
Type Haskell expressions in here.
reverse "hello"
"olleh"
:: [Char]