Haskell Hero
Interaktivní učebnice pro začínající Haskellisty
|
Seznamy ISeznam jako vláčekJak jsme si řekli v kapitole o užitečných funkcích, seznamy se zapisují do hranatých závorek a jejich prvky se oddělují čárkami. [8,5,3]Prázdný seznam vyrobíme pomocí dvou hranatých závorek [] a pro vložení prvku do seznamu použijeme binární operátor (:) . Vložení prvku 10 do seznamu [8,5,3] se tedy provede následovně:
10 : [8,5,3]Výraz 10:[8,5,3] se již dále nevyhodnocuje, je v nezjednodušitelném tvaru a zaměnitelný s výrazem [10,8,5,3] . Obecněji jsou všechny z následujících výrazů libovolně zaměnitelné ((:) sdružuje zprava):
[10,8,5,3] 10:[8,5,3] 10:8:[5,3] 10:8:5:[3] 10:8:5:3:[]
Konečně, seznam zapsaný ve tvaru
Takže seznam je vláček, kde jeho prvky jsou znázorněny jako vagónky, operátor Seznam [8,5,3] jako vláček
Operace se seznamySe seznamem umíme udělat tři věci:
Například funkce head :: [a] -> a head (x:s) = xUkažme si, jak vypadá vyhodnocení výrazu head [1,2,3] .
Výsledkem je tedy
Poznámka: Jelikož na pravé straně definice funkce head (x:_) = x |