Selasa, 22 September 2026
12:11 WIB
TERKINI
Regional Solo Safari Bantah Larang Hijab, Akui Ada Kesalahan Komunikasi Berita Banjir Bandang Landa Kompleks Pemkab Solok, Peralatan Kantor Hanyut dan Warga Mengungsi Berita Mengungkap Jaringan Video Asusila "A Day in My Life": Dua Pelaku Raup Jutaan Rupiah Berita Nusron Wahid Mundur dari Golkar, Serahkan Detail ke Bahlil Lahadalia Wawancara Tragedi 1965: Oka Rusmini Soroti Perampasan Hak Hidup Perempuan Prelude Dua Mantan Menteri Keuangan: Riwayat Berbeda di Kursi Kasir Negara Politik Kepala BGN Gencar Beriklan di Medsos, Benahi Citra Program Makan Bergizi Gratis Bisnis Jerat Pungli Ancam UMKM Indonesia: Kisah Bolosego dan Solusi Mendesak Hukum & Kriminal Empat Eks Pejabat LPEI Divonis 6 Tahun Penjara dalam Skandal Korupsi Pembiayaan Ekspor Hukum & Kriminal Mantan Bupati Sidoarjo Gus Muhdlor Bebas Bersyarat Usai Dua Tahun Dipenjara Regional Solo Safari Bantah Larang Hijab, Akui Ada Kesalahan Komunikasi Berita Banjir Bandang Landa Kompleks Pemkab Solok, Peralatan Kantor Hanyut dan Warga Mengungsi Berita Mengungkap Jaringan Video Asusila "A Day in My Life": Dua Pelaku Raup Jutaan Rupiah Berita Nusron Wahid Mundur dari Golkar, Serahkan Detail ke Bahlil Lahadalia Wawancara Tragedi 1965: Oka Rusmini Soroti Perampasan Hak Hidup Perempuan Prelude Dua Mantan Menteri Keuangan: Riwayat Berbeda di Kursi Kasir Negara Politik Kepala BGN Gencar Beriklan di Medsos, Benahi Citra Program Makan Bergizi Gratis Bisnis Jerat Pungli Ancam UMKM Indonesia: Kisah Bolosego dan Solusi Mendesak Hukum & Kriminal Empat Eks Pejabat LPEI Divonis 6 Tahun Penjara dalam Skandal Korupsi Pembiayaan Ekspor Hukum & Kriminal Mantan Bupati Sidoarjo Gus Muhdlor Bebas Bersyarat Usai Dua Tahun Dipenjara
Haskell

Haskell

bahasa pemrograman fungsional

Haskell
Logo of Haskell
ParadigmaFungsional, malas/tidak ketat, modular
Dirancang olehLennart Augustsson, Dave Barton, Brian Boutel, Warren Burton, Joseph Fasel, Kevin Hammond, Ralf Hinze, Paul Hudak, John Hughes, Thomas Johnsson, Mark Jones, Simon Peyton Jones, John Launchbury, Erik Meijer, John Peterson, Alastair Reid, Colin Runciman, Philip Wadler
Pertama kali muncul1990
Rilis stabil
Marlow,Simon(24 November 2009)."Announcing Haskell 2010".http://www.haskell.org/pipermail/haskell/2009-November/021750.html.Diakses pada 12 March 2011. </ref> / Juli 2010;16 tahun lalu (2010-07)
Rilis pratayang
Haskell 2011[butuh rujukan]
Tata tertib penjenisanStatis, kuat, disimpulkan
SOLintas platform
Ekstensi nama berkas.hs, .lhs
Situs webhaskell.org
Pelaksanaan utama
GHC, Hugs, NHC, JHC, Yhc, UHC
Dialek
Helium, Gofer, Hugs, Ωmega
Dipengaruhi oleh
APL,[butuh rujukan] Clean,[1] FP,[1] Gofer,[1] Hope dan Hope+,[1] Id,[1] ISWIM,[1] KRC,[1] Lisp,[1] Miranda,[1] ML and Standard ML,[1] Orwell, SASL,[1] SISAL,[1] Scheme[1]
Memengaruhi
Agda,[2] Bluespec,[butuh rujukan] C++11/Concepts,[3] C#/LINQ,[4][5] CAL,[butuh rujukan] Cayenne,[butuh rujukan] Clean,[6] Clojure,[7] CoffeeScript,[8] Curry,[butuh rujukan] Epigram,[butuh rujukan] Escher,[butuh rujukan] F#,[9] Factor,[butuh rujukan] Isabelle,[butuh rujukan] Java Generics,[butuh rujukan] Kaya,[butuh rujukan] Mercury,[butuh rujukan] Omega,[butuh rujukan] Perl 6,[10] Python,[11] Qi,[butuh rujukan] Scala,[12] Timber,[butuh rujukan] Visual Basic 9.0[13]

Haskell adalah bahasa pemrograman fungsional murni. Nama bahasa pemrograman Haskell diambil dari nama seorang 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.[14] 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.[15][16][17] HinggaMei 2021[update], Haskell adalah bahasa pemrograman terpopuler ke-28 menurut Google Pencarian untuk tutorial,[18] dan berjumlah kurang dari 1% pengguna aktif di repositori kode sumber GitHub.[19]

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.[20]

Standar mendatang

Spesifikasi formal berikutnya telah direncanakan untuk tahun 2020.[21] 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.[22][23]

Fitur

Artikel utama: Fitur Haskell

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,[24] tetapi telah menemukan banyak pengguna baru.[25]

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.[26]

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.[27]
  • Cabal adalah sebuah alat untuk membuat dan mengemas program dan pustaka Haskell.[28]
  • 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.[29]
  • 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:[30]

Referensi

  1. 1 2 3 4 5 6 7 8 9 10 11 12 13 Haskell 98 Report, p. xi
  2. Norell, Ulf (2008). "Dependently Typed Programming in Agda" (PDF). Gothenburg: Chalmers University. Diarsipkan (PDF) dari versi aslinya tanggal 2014-04-01. Diakses tanggal 9 Februari 2012.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  3. Stroustrup, Bjarne; Sutton, Andrew (2011). "Design of Concept Libraries for C++" (PDF). Diarsipkan dari asli (PDF) tanggal 2011-08-25. Diakses tanggal 2021-02-21. {{cite journal}}: Kutipan journal memerlukan |journal=
  4. Meijer, Erik (1 Oktober 2009). "C9 Lectures: Dr. Erik Meijer - Functional Programming Fundamentals, Chapter 1 of 13". Channel 9. Microsoft. Diarsipkan dari asli tanggal 2012-06-16. Diakses tanggal 9 Februari 2012.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  5. Drobi, Sadek (4 Maret 2009). "Erik Meijer on LINQ". InfoQ. QCon SF 2008: C4Media Inc. Diarsipkan dari versi aslinya tanggal 2021-01-26. Diakses tanggal 9 Februari 2012.{{cite news}}: Pemeliharaan CS1: Lokasi (link) Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  6. Hudak, Paul; Hughes, John; Peyton Jones, Simon; Wadler, Philip (2007). "A history of Haskell: being lazy with class". Proceedings of the third ACM SIGPLAN conference on History of programming languages (HOPL III): 12–1–12–55. doi:10.1145/1238844.1238856. ISBN [[Special:BookSources/978-1-59593-766-X |978-1-59593-766-X [[Kategori:Artikel dengan ISBNsalah]]]]. {{cite journal}}: Periksa nilai |isbn=: karakter tidak validPemeliharaan CS1: terbitan berkala memiliki ISBN (link)
  7. Hickey, Rich. "Clojure Bookshelf". Listmania!. Amazon.com. Diarsipkan dari versi aslinya tanggal 2012-03-19. Diakses tanggal 9 Februari 2012.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  8. Heller, Martin (18 Oktober 2011). "Turn up your nose at Dart and smell the CoffeeScript". JavaWorld. InfoWorld. Diarsipkan dari asli tanggal 2012-02-10. Diakses tanggal 9 Februari 2012.{{cite news}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  9. Syme, Don; Granicz, Adam; Cisternino, Antonio (2007). Expert F#. Apress. hlm. 2. F# also draws from Haskell particularly with regard to two advanced language features called sequence expressions and workflows.
  10. "Glossary of Terms and Jargon". Perl Foundation Perl 6 Wiki. The Perl Foundation. 28 February. Diarsipkan dari asli tanggal 2012-01-21. Diakses tanggal 9 February 2012. {{cite web}}: Periksa nilai tanggal dalam: |date=
  11. Kuchling, A. M. "Functional Programming HOWTO". Python v2.7.2 documentation. Python Software Foundation. Diarsipkan dari versi aslinya tanggal 2012-10-24. Diakses tanggal 9 Februari 2012.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  12. Fogus, Michael (6 Agustus 2010). "MartinOdersky take(5) toList". Send More Paramedics. Diarsipkan dari versi aslinya tanggal 2012-02-14. Diakses tanggal 9 Februari 2012.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  13. Erik Meijer, "Confessions of a Used Programming Language Salesman", OOPSLA 2007
  14. Edward Kmett, Edward Kmett – Type Classes vs. the World
  15. Mossberg, Erik (2020-06-08), erkmos/haskell-companies, diakses tanggal 2020-06-22
  16. O'Sullivan, Bryan; Goerzen, John; Stewart, Donald Bruce (15 November 2008). Real World Haskell: Code You Can Believe In (dalam bahasa Inggris). "O'Reilly Media, Inc.". hlm. xxviii–xxxi. ISBN 978-0-596-55430-9.{{cite book}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  17. "Haskell in Production: Riskbook". Serokell Software Development Company (dalam bahasa Inggris). Diakses tanggal 2021-09-07.
  18. "PYPL PopularitY of Programming Language index". pypl.github.io (dalam bahasa Inggris). Mei 2021. Diarsipkan dari asli tanggal 7 Mei 2021. Diakses tanggal 16 Mei 2021.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  19. Frederickson, Ben. "Ranking Programming Languages by GitHub Users". www.benfrederickson.com. Diakses tanggal 6 September 2019.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  20. Peyton Jones 2003, Preface.
  21. Riedel,Herbert(28 April 2016)."ANN: Haskell Prime 2020 committee has formed".https://mail.haskell.org/pipermail/haskell-prime/2016-April/004050.html. 
  22. GHC 2020 Team (29 October 2021) GHC 9.2.1 released
  23. Proposed compiler and language changes for GHC and GHC/Haskell
  24. Wadler, P.; Blott, S. (1989). "How to make ad-hoc polymorphism less ad hoc". Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '89. ACM. hlm. 60–76. doi:10.1145/75277.75283. ISBN 978-0-89791-294-5. S2CID 15327197.
  25. Hallgren, T. (Januari 2001). "Fun with Functional Dependencies, or Types as Values in Static Computations in Haskell". Proceedings of the Joint CS/CE Winter Meeting. Varberg, Sweden.{{cite journal}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  26. "HackageDB statistics". Hackage.haskell.org. Diarsipkan dari asli tanggal 3 Mei 2013. Diakses tanggal 26 Juni 2013.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  27. Agda 2, Agda Github Community, 2021-10-15, diakses tanggal 2021-10-16
  28. "The Haskell Cabal". Diakses tanggal 8 April 2015.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  29. "Linspire/Freespire Core OS Team and Haskell". Debian Haskell mailing list. Mei 2006. Diarsipkan dari asli tanggal 27 Desember 2017. Diakses tanggal 14 Juni 2006.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)
  30. "Web/Frameworks – HaskellWiki". wiki.haskell.org. Diakses tanggal 17 September 2022.{{cite web}}: Pemeliharaan CS1: Tanggal diterjemahkan otomatis (link)

Pranala luar

Wikibooks memiliki buku di:
Various
Tutorials
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan