Portál AbcLinuxu, 5. června 2024 22:58

Haskell


Čistě funkcionální, deklarativní jazyk. Mezi hlavní rysy patří

Kód lze zkompilovat do binární podoby nebo jej spustit v interaktivním (REPL) prostředí. Překladač umí automaticky odvodit datový typ výrazu, takže typové signatury slouží především jako dokumentace, která je automaticky generována nástrojem Haddock (podobně jako u sys. Doxygen).

Absence vedlejších efektů a interaktivní prostředí výrazně usnadňuje manuální testování kódu, které lze doplnit o property-based testing pomocí QuickCheck (vlastnosti jako např.

reverse . reverse == id
tj. že obrátíme-li pořadí prvků seznamu dvakrát, dostaneme původní seznam).


Mnoho knihoven lze najít na stránce Hackage. Tyto moduly jsou distribuovány jako balíčky pro nástroj cabal, kterým lze instalovat moduly lokálně i se závislostmi.

Existují dvě on-line dostupné knihy: Learn You Haskell a Real World Haskell

K hlavním implementacím patří Ghc a Hugs.


Jedním z častých příkladů kódu je (neefektivní) třídící algoritmus:

quickSort :: Ord a => [a] -> [a]
quickSort []     = []
quickSort (x:xs) = smaller ++ [x] ++ bigger
  where
    smaller = [a | a <- xs, a <  x]
    bigger  = [a | a <- xs, a >= x]

Prostředí:
Domovská stránka: http://www.haskell.org/haskellwiki/Haskell (13×)
Adresa ke stažení: http://www.haskell.org/platform/
Počet uživatelů:
3  
       

Hodnocení: 100 %

        špatnédobré        

Dokument vytvořil: pakanek, 6.12.2013 10:35 | Poslední úprava: pakanek, 6.12.2013 10:37 | Historie změn | Zobrazeno: 668×

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.