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