Haskell

Wikipedia
Loikkaa: valikkoon, hakuun
Haskell
Haskell-Logo.svg
Paradigma funktionaalinen
Tyypitys vahva, staattinen
Muistinhallinta Automaattinen
Merkittävimmät toteutukset GHC, Hugs
Vaikutteet Miranda, ML
Murteet Helium
Käyttöjärjestelmä alustariippumaton
Verkkosivu haskell.org
Uutisryhmä comp.lang.haskell

Haskell on standardoitu, puhtaasti funktionaalinen ohjelmointikieli. Se on nimetty matemaatikko Haskell Curryn mukaan. Sitä on kehitetty vuodesta 1987. Päästandardi on Haskell 98, joka määrittelee kielen ytimen, jossa on kaikki perustoiminnallisuus, joka on siirrettävä ja joka on sopiva opetuskäyttöön. Lähes kaikki kielen toteutukset tuovat näiden päälle omia laajennuksiaan. Tunnetuimpia toteutuksia ovat GHC (Glasgow Haskell Compiler) ja Hugs (interaktiivinen tulkki).

Joitain kielen tärkeitä ominaispiirteitä ovat hahmonsovitus (engl. pattern matching), funktion osittainen soveltaminen (eli partial application), listankäsittely, vartiolausekkeet ja määriteltävät operaattorit. Kieli myös tukee rekursiivisia funktioita, algebrallisia tietotyyppejä ja laiskaa laskemista. Erityisiä piirteitä ovat monadit ja tyyppiluokat. Näiden ansiosta Haskellilla on helppo kirjoittaa tietyntyyppisiä ohjelmia, joiden kirjoittaminen olisi huomattavasti vaikeampaa proseduraalisilla ohjelmointikielillä.

Tällä hetkellä Haskell on saanut suosiota lähinnä akateemisissa piireissä, ja se on ainakin Yhdysvalloissa yksi suosituimpia tutkimuskäytössä olevia kieliä sekä kansainvälisesti yksi tärkeimmistä akateemisista ohjelmoinnin opetukseen käytettävistä kielistä. Tästä huolimatta kieltä käytetään jonkin verran myös kaupallisilla aloilla (mm. Credit Suisse ja Linspire [1]). Avoimen lähdekoodin projekteissa sitä käytetään hyvin vähän, joskin muutama merkittävä poikkeus löytyy, kuten Audrey Tangin Pugs (Perl 6:n kääntäjä) sekä Darcs (hajautettu versionhallintajärjestelmä).

Esimerkki[muokkaa | muokkaa wikitekstiä]

Funktionaalisten ohjelmointikielien vastine hei maailma -ohjelmalle on kertomafunktio. Haskell-versio:

kertoma :: Integer → Integer
kertoma 0 = 1
kertoma n = n * kertoma (n - 1)

Ensimmäisellä rivillä täsmennetään, että "kertoma" on funktio, joka tarvitsee argumenttinaan kokonaisluvun ja palauttaa kokonaisluvun. Seuraavilla riveillä määritellään kaksi erilaista funktion määritelmää: nollan kertoma on 1, ja n:n kertoma on n \times kertoma(n-1). Se, kumpaa funktiota kutsutaan, määräytyy kaavantunnistuksen avulla.

Lähteet[muokkaa | muokkaa wikitekstiä]

  1. CUFP 2006 Abstracts Viitattu 25.6.2007. (englanniksi)

Aiheesta muualla[muokkaa | muokkaa wikitekstiä]

Tämä tietotekniikkaan liittyvä artikkeli on tynkä. Voit auttaa Wikipediaa laajentamalla artikkelia.