Fibonacci (Haskell)

Aus Infostudium Wiki

Wechseln zu: Navigation, Suche

Die Implementierung der Fibonacci-Funktion:

naiv

fib :: Int -> Int
fib 0 = 0
fib 1 = 1
fib n = fib (n - 2) + fib (n - 1)

endrekursiv

fib :: Integer -> Integer
fib 0 = 0
fib 1 = 1
fib n = fib' (n-1) 1 1 where
        fib' 0 x y = x
        fib' n x y = fib' (n-1) y (x+y) 

etwas eleganter

map fst (scanl1 (\(x1,x2) (y1,y2) -> (x1+x2,x1)) (repeat (0,1)))

nur mit vordefinierten Funktionen

map head (scanl1 (const.reverse.scanl1 (+)) (repeat [0,1]))

Siehe auch

Fibonacci (Prolog)

Persönliche Werkzeuge