![]() | |
Paradigma: | funkcijski, nestriktni, modularni |
---|---|
Pojavio se: | 1990. |
Dizajnirao: | Simon Peyton-Jones, Paul Hudak[1], Philip Wadler, et al. |
Disciplina tipiziranja: | statičko, jako, inferirano |
Glavne implementacije: | GHC, Hugs, NHC, JHC, Yhc |
Dijalekti: | Helium |
Pod utjecajem: | Miranda, ML, Gofer |
Haskell je standardizirani čisti funkcijski programski jezik s nestriktnom semantikom, imenovan po logičaru Haskellu Curryu. Jedan je od najpopularnijih funkcijskih programskih jezika, i predstavlja lijeni programski jezik nad kojim se izvršava ponajviše istraživanja.[1]
Karakteristične osobine Haskella uključuju sparivanje uzoraka, currying, komprehenzije liste,[2] čuvare, definabilne operatore i jednostruko dodjeljivanje. Jezik također podržava rekurzivne funkcije i algebarske tipove podataka, kao i lijenu evaluaciju. Jedinstveni koncepti jezika su monade i klase tipova. Kombinacija takvih svojstava omogućuje pisanje funkcija koje bi bilo jako teško napisati u proceduralnim programskim jezicima gotovo trivijalno za implementirati u Haskellu.
Nekoliko varijanti je razvijeno: paralelizibilne verzije s MIT-a i Glasgowa, oboje nazvani Parallel Haskell; paralelnije i distribuirane verzije zvane Distributed Haskell (prije poznat kao Goffin) i Eden; spekulativno izvršavajuća verzija zvana Eager Haskell i nekolicina objektno orijentiranih verzija: Haskell++, O'Haskell i Mondrian.