haskell-workshop/solutions/block2/fibTail.hs

32 lines
721 B
Haskell

-- Lösung: Fibonacci-Funktion mit Tail-Rekursion
fibonacciTail :: Integer -> Integer -> Integer -> Integer
fibonacciTail 0 a _ = a
fibonacciTail n a b = fibonacciTail (n - 1) b (a + b)
fibonacci :: Integer -> Integer
fibonacci n = fibonacciTail n 0 1
-- Testfälle
test1 = fibonacci 0 == 0
test2 = fibonacci 1 == 1
test3 = fibonacci 2 == 1
test4 = fibonacci 3 == 2
test5 = fibonacci 5 == 5
test6 = fibonacci 10 == 55
test7 = fibonacci 15 == 610
test8 = fibonacci 20 == 6765
-- Hauptfunktion zum Testen
main :: IO ()
main = do
putStrLn "Teste Fibonacci-Funktion mit Tail-Rekursion..."
print test1
print test2
print test3
print test4
print test5
print test6
print test7
print test8