i

Implementierung von map

Rekursive Struktur

Die folgende Funktion demonstriert die rekursive Grundidee für die Verarbeitung einer Liste.

verdoppeln : List Int -> List Int
verdoppeln liste =
    case liste of
        [] ->
            []

        anfang :: rest ->
            anfang * 2 :: verdoppeln rest

Aufgabe 1

Teste die Funktion verdoppeln mit mehreren Beispielen und erkläre, wie die Funktion arbeitet. Gehe dabei insbesondere auf die Mustererkennung und die rekursive Struktur der Funktion ein.

map für beliebige Listen

Die map-Funktion kann auf beliebige Listen angewendet werden. Die als Parameter übergebene Funktion muss nur zu den Datentypen der Eingangsliste und der Ausgangsliste passen. Die map-Funktion hat deshalb den folgenden Typ:

map : (a -> b) -> List a -> List b

Aufgabe 2

Erstelle ähnlich der Funktion verdoppeln eine Funktion map, die eine beliebige Funktion auf alle Elemente einer Liste anwendet. Teste sie z.B. mit den Aufrufen:

> map ((+) 1) [1, 2, 3, 4, 5]
[2, 3, 4, 5, 6]
> map toUpper ['a', 'b', 'c', 'd', 'e']
['A', 'B', 'C', 'D', 'E']
> map String.length ["Hund", "Katze", "Maus"]
[4, 5, 4]

Suche

v
8.2.2.10.3.1.3
dev.inf-schule.de/deklarativ/fp_elm/elm_programme/rekursion/verschluesselung/lernstrecke/implementierung
dev.inf-schule.de/8.2.2.10.3.1.3
dev.inf-schule.de/@/page/HSMjbTdntDjWeyF1

Rückmeldung geben