Úvod do Haskellu
-- skrytí knihovní funkce `take`,
-- takže si ji můžeme napsat pod stejným jménem
import Prelude hiding (take)
sedm = 1+2*3
obsahKruhu r = pi*r^2
fact 0 = 1
fact n = if n>0 then n * fact (n-1) else 0
-- neefektivní verze
--fib 0 = 0
--fib 1 = 1
--fib n = fib (n-1) + fib (n-2)
fib 0 = 0
fib 1 = 1
fib n = fib' (n-2) 0 1
fib' 0 v w = v + w
fib' n v w = fib' (n-1) w (v+w)
soucet [] = 0
soucet (prvni : zbytek) = prvni + soucet zbytek
f (d:p:_:_) = if p==d then p+d else 0
f _ = undefined
take 0 _ = []
take n [] = []
take n (h:t) = h:(take (n-1) t)