# Aufgabe 3 - Fibonacci mit Tail-Rekursion ## Ziel der Aufgabe Implementiere die Fibonacci-Funktion mit **Tail-Rekursion**, ähnlich wie die `factorialTail`-Funktion. Die Lösung soll eine Hilfsfunktion mit einem Akkumulator verwenden.
Spoiler: Klicke auf den Pfeil für factorialTail ```haskell factorialTail :: Integer -> Integer -> Integer factorialTail 0 acc = acc factorialTail n acc = factorialTail (n - 1) (n * acc) factorial :: Integer -> Integer factorial n = factorialTail n 1 ```
## Signatur ```haskell fibonacciTail :: Integer -> Integer -> Integer -> Integer ``` ## Beispiel Testfäle ``` fibTail 0 -- 0 fibTail 1 -- 1 fibTail 5 -- 5 fibTail 10 -- 55 fibTail 15 -- 610 ``` ## Anforderungen - Implementiere fibonacciTail, eine Hilfsfunktion mit einem Akkumulator - Implementiere fibonacci, die fibonacciTail mit den Startwerten 0 und 1 aufruft - Nutze keine if-Statements, sondern Pattern Matching - Nutze Tail-Rekursion für eine speichereffiziente Lösung ## Hinweise
Klicke auf den Pfeil für Hinweise - fibonacciTail benötigt drei Parameter: - 1: n (die Anzahl der Schritte) - 2: a (die vorherige Fibonacci-Zahl) - 3: b (die aktuelle Fibonacci-Zahl) - Wenn n == 0 ist, gib a zurück - Wenn n == 1 ist, gib b zurück - Ansonsten rufe die Funktion rekursiv mit n - 1 auf und verschiebe a und b