864 B
864 B
Aufgabe 1 - Rekursive Implementierung von map
Ziel der Aufgabe
Implementiere die Funktion map
rekursiv. Die Funktion nimmt eine Funktion f
und eine Liste xs
und gibt eine neue Liste zurück, in der f
auf jedes Element von xs
angewendet wurde.
Signatur
map :: (a -> b) -> [a] -> [b]
Beispiel Testfäle
map (*2) [1, 2, 3] -- [2, 4, 6]
map show [1, 2, 3] -- ["1", "2", "3"]
map (const "a") [1, 2, 3] -- ["a", "a", "a"]
map (+1) [] -- []
Anforderungen
- Nutze Rekursion zur Implementierung
- Nutze kein map aus der Standardbibliothek
- Nutze Pattern Matching, um Basis- und Rekursionsfall zu unterscheiden
Hinweise
- Die leere Liste
[]
soll als Basisfall betrachtet werden - Die Funktion
f
soll auf das erste Element der Liste angewendet und dann mit dem Rest der Liste rekursiv weitergeführt werden