Ú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)