haskell-workshop/exercises/block2/2-zip/README.md

952 B

Aufgabe 1 - Rekursive Implementierung von zip

Ziel der Aufgabe

Implementiere die Funktion zip rekursiv. Die Funktion nimmt zwei Listen und gibt eine Liste von Paaren zurück, wobei jeweils das erste Element der ersten Liste mit dem ersten Element der zweiten Liste kombiniert wird.

Signatur

zip :: [a] -> [b] -> [(a, b)]

Beispiel Testfäle

zip [1,2,3] ['a', 'b', 'c'] -- [(1, 'a'), (2, 'b'), (3, 'c')]
zip [1,2] ["eins", "zwei", "drei"] -- [(1, "eins"), (2, "zwei")]
zip [True, False] [1,2,3] -- [(True,1), (False,2)]
zip [] [1,2,3] -- []
zip [1,2,3] [] -- []

Anforderungen

  • Nutze Rekursion zur Implementierung
  • Nutze kein zip aus der Standardbibliothek
  • Die Funktion soll enden, sobald eine der beiden Listen leer ist

Hinweise

  • Der Basisfall tritt ein, wenn eine der Listen leer ist
  • Kombiniere das erste Element beider Listen zu einem Tupel und rufe zip rekursiv für die restlichen Elemente auf