30 lines
913 B
Markdown
30 lines
913 B
Markdown
# Aufgabe 2 - 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
|
|
```haskell
|
|
myMap :: (a -> b) -> [a] -> [b]
|
|
```
|
|
|
|
## Beispiel Testfäle
|
|
```haskell
|
|
myMap (*2) [1, 2, 3] -- [2, 4, 6]
|
|
myMap show [1, 2, 3] -- ["1", "2", "3"]
|
|
myMap (const "a") [1, 2, 3] -- ["a", "a", "a"]
|
|
myMap (+1) [] -- []
|
|
```
|
|
|
|
## Anforderungen
|
|
- Nutze Rekursion zur Implementierung
|
|
- Nutze kein map aus der Standardbibliothek
|
|
- Nutze Pattern Matching, um Basis- und Rekursionsfall zu unterscheiden
|
|
|
|
## Hinweise
|
|
<details>
|
|
<summary>Klicke auf den Pfeil für Hinweise</summary>
|
|
|
|
- Die leere Liste `[]` soll als Basisfall betrachtet werden
|
|
- Die Funktion `f` soll auf das erste Element der Liste angewendet und dann mit dem Rest
|
|
</details> |