Der map-Operator
Die Funktion konzipieren
Die Signatur und das Verhalten des map
-Operators lassen sich in einem Elm-Dialog ermitteln.
> List.map
<function> : (a -> b) -> List a -> List b
> List.map round [3.4, 5.1, 7.5, 8.0]
[3,5,8,8] : List Int
Das Black-Box-Diagramm verdeutlicht diese Eigenschaften des map
-Operators.
Unser Ziel ist es, einen myMap
-Operator zu definieren, der sich genauso verhält wie der vordefinierte map
-Operator.
Die Implementierung erfolgt mit Hilfe von Rekursion.
module Listenoperatoren exposing (..)
myMap: (a -> b) -> List a -> List b
myMap funktion liste =
case liste of
[] ->
[]
element :: restliste ->
...
> import Listenoperatoren exposing (..)
> myMap round [3.4, 5.1, 7.5, 8.0]
[3,5,8,8] : List Int
Aufgabe 1
In der Implementierung fehlt noch die Festlegung für den Fall element :: restliste
. Ergänze diesen fehlenden Teil.
Hinweise: Die übergebene Funktion soll auf das erste Element angewandt werden. Die Restliste soll genauso wie die Ausgangsliste verarbeitet werden.
Quellen
- [1]: Black-box-Diagramm List.map - Urheber: KB - Lizenz: inf-schule.de
- [2]: Black-box-Diagramm myMap - Urheber: KB - Lizenz: inf-schule.de