Haskell

Haskell adalah merupakan bahasa pemrograman fungsional murni. 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.

Semantik Haskell secara historis didasarkan pada bahasa pemrograman Miranda, yang berfungsi untuk memfokuskan upaya kelompok kerja Haskell awal.Edward Kmett, Edward Kmett – Type Classes vs. the World Spesifikasi formal terakhir dari bahasa tersebut dibuat pada bulan Juli 2010, sementara pengembangan GHC terus memperluas Haskell melalui ekstensi bahasa.

Haskell digunakan dalam akademi dan industri. , Haskell adalah bahasa pemrograman terpopuler ke-28 menurut Google Pencarian untuk tutorial,  dan berjumlah kurang dari 1% pengguna aktif di repositori kode sumber GitHub.

 Sejarah 
Setelah perilisan Miranda oleh Research Software Ltd. pada tahun 1985, minat terhadap bahasa fungsional yang malas tumbuh. Pada tahun 1987, ada lebih dari selusin bahasa pemrograman yang tidak ketat dan murni fungsional. Miranda merupakan yang paling banyak digunakan, tapi itu adalah perangkat lunak berpemilik. Pada konferensi Functional Programming Languages and Computer Architecture (FPCA '87) di Portland, Oregon, ada konsensus yang kuat bahwa sebuah komite dibentuk untuk menentukan standar terbuka untuk bahasa-bahasa tersebut. Tujuan komite ini adalah untuk menggabungkan bahasa-bahasa fungsional yang ada menjadi bahasa yang umum untuk digunakan sebagai dasar pengmebangan masa depan dalam desain bahasa fungsional.

 Standar mendatang 
Spesifikasi formal berikutnya telah direncanakan untuk tahun 2020. Pada 29 Oktober 2021, dengan versi GHC 9.2.1, ekstensi GHC2021 dirilis. Meskipun ini bukan spesifikasi bahasa formal, ini menggabungkan sejumlah ekstensi GHC yang stabil dan banyak digunakan pada Haskell 2010.GHC 2020 Team (29 October 2021) GHC 9.2.1 releasedProposed compiler and language changes for GHC and GHC/Haskell 

 Fitur 

Haskell menyediakan evaluasi malas, ekspresi lambda, pencocokan pola, pemahaman daftar, tipe kelas, dan polimorfisme tipe. Ini adalah bahasa pemrograman yang murni fungsional, yang berarti bahwa fungsi pada umumnya tidak mempunyai efek samping. Ada konstruksi berbeda untuk mewakili efek samping, ortogonal terhadap jenis fungsinya. Sebuah fungsi murni dapat mengembalikan sebuah efek samping yang kemudian dieksekusi, memodelkan fungsi tidak murni dari bahasa lain.

Haskell memiliki sistem tipe statis yang kuat berdasarkan inferensi jenis Hindley – Milner. Inovasi utamanya dalam bidang ini adalah kelas tipe, yang awalnya dipahami sebagai cara berprinsip untuk menambah beban berlebih pada bahasa, tetapi telah menemukan banyak pengguna baru.

Terdapat komunitas yang aktif dan berkembang seputar bahasa ini, dan lebih dari 5.400 perpustakaan dan alat sumber terbuka pihak ketiga tersedia di repositori paket daring Hackage.

 Contoh 

 Hello World 
Berikut ini adalah contoh program sederhana yang akan mencetak kalimat "Hello, World!". 
         main = putStrLn "Hello, world!"


 Penjumlahan sederhana 
Berikut ini adalah contoh program sederhana yang akan mencetak hasil penjumlahan antara 2 dan 10.    main = print (2 + 10)

 Cetak nama 
Berikut ini adalah contoh program sederhana yang akan meminta nama pengguna dan mencetaknya kembali.    main = do
        putStrLn "Masukan nama Anda:"
        nama <- getLine
        putStrLn ("Selamat datang, " ++ nama ++ "!")

 Penggunaan terkenal 

 Asisten pembuktian Agda ditulis dalam Haskell.
 Cabal adalah sebuah alat untuk membuat dan mengemas program dan pustaka Haskell.
 Darcs adalah sistem kontrol revisi yang ditulis dalam Haskell, dengan beberapa fitur inovatif, seperti kontrol patch yang akan diterapkan lebih tepat.
 Glasgow Haskell Compiler (GHC) juga sering kali menjadi tempat uji coba untuk fitur pemrograman fungsional tingkat lanjut dan pengoptimalan dalam bahasa pemrograman lain.
 Git-annex adalah sebuah alat untuk mengatur berkas data (besar) di bawah kontrol versi Git. It also provides a distributed file synchronization system (git-annex assistant).
 Linspire Linux memilih Haskell untuk pengembangan alat sistem.
 Pandoc adalah alat untuk mengubah satu format markup ke format markup lainnya.
 Pugs adalah kompilator dan penerjemah untuk bahasa pemrograman yang kemudian diberi nama Perl 6, namun sejak berganti nama Raku.

 Web 
Kerangka web terkenal yang ditulis untuk Haskell termasuk:

 IHP
 Servant
 Snap
 Yesod

 Referensi 

 Pranala luar 


 Language and library specification  at the Haskell Wiki

 Various
 The Evolution of a Haskell Programmer , slightly humorous overview of different programming styles available in Haskell
 Online Bibliography of Haskell Research 
 Haskell Weekly News 
 The Monad.Reader , quarterly magazine on Haskell topics

 Leksah , a GTK-based Haskell IDE written in Haskell
Tutorials
 Try Haskell! , an in-browser interactive tutorial
 Yet Another Haskell Tutorial , by Hal Daumé III; assumes far less prior knowledge than official tutorial
 The Haskell Cheatsheet , compact language reference and mini-tutorial

Kategori:Bahasa pemrograman
Kategori:Perangkat lunak bebas