haskell-workshop/exercises/block2/2-zip/zip.hs

27 lines
675 B
Haskell

-- Aufgabe: Implementiere die rekursive Funktion `zip`
-- Funktionssignatur
zip :: [a] -> [b] -> [(a, b)]
-- TODO: Implementiere die Funktion mit Rekursion
zip [] _ = undefined
zip _ [] = undefined
zip (x:xs) (y:ys) = undefined
-- Testfälle
test1 = zip [1,2,3] ['a', 'b', 'c'] == [(1, 'a'), (2, 'b'), (3, 'c')]
test2 = zip [1,2] ["eins", "zwei", "drei"] == [(1, "eins"), (2, "zwei")]
test3 = zip [True, False] [1,2,3] == [(True,1), (False,2)]
test4 = zip [] [1,2,3] == []
test5 = zip [1,2,3] [] == []
-- Hauptfunktion zum Testen
main :: IO ()
main = do
putStrLn "Teste zip-Funktion..."
print test1
print test2
print test3
print test4
print test5