length [] = 0 // toto nastane ak je zoznam prazdny alebo ak sa dostaneme na koniec pola??
- toto je prazdny zoznam, cize dlzka zoznamu je nula
length (x:xs) = 1 + length xs // co znamenaju jednotlive premenne ?? x,xs ??
- x je prvy prvok, xs je zvysok zoznamu. Cize, "1 +" pretoze (x:xs) znamena, ze tam je aspon jeden prvok v zozname, a potom "+ lenght xs" - volas tu istu funkciu na zvysok zoznamu, bez prveho prvku.
Takze ked mas napriklad zoznam [2,5] tak to spravi to, ze sa vykona "1 + length xs" ... kde jednotka je kvoli prvemu prvku a "length xs" je length [5] .. cize zase jedna .. a mas potom 1 + 1 + length xs .. a teraz uz je zoznam prazdny, uz nie je dalsi prvok .. takze akoby bolo "1 + 1 + length[]" cize vysledok je 2.
length [2,5] = 1 + length [5] = 1 + 1 + length [] = 1 + 1 + 0 = 2