32 lines
721 B
Haskell
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
|