haskell-workshop/exercises/block2/3-fibTail
David 7d5391dae7 Aufgabe 3 Block 2 2025-02-05 23:31:02 +01:00
..
README.md Aufgabe 3 Block 2 2025-02-05 23:31:02 +01:00
fibTail.hs Aufgabe 3 Block 2 2025-02-05 23:31:02 +01:00

README.md

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

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