Problempräzisierung
Eine map-Funktion programmieren
Du hast in vorherigen Kapiteln schon oft Funktionen wie String.map
oder List.map
verwendet.
Diese Funktionen wenden eine gegebene Funktion auf jedes Element einer Zeichenkette
bzw. einer Liste an.
Genau das benötigen wir an dieser Stelle auch.
Wir könnten also eine Funktion verschluesseltesZeichen
schreiben,
die ein einzelnes Zeichen verschlüsselt und diese dann folgendermaßen aufrufen:
> String.map verschluesseltesZeichen "PARTY"
"YGNVF"
Falls du schon Erfahrung mit anderen Programmiersprachen hast,
kennst du vermutlich das Konzept von Schleifen.
In vielen Sprachen heißen diese for
- oder while
-Schleifen.
In Elm und anderen funktionalen Programmiersprachen gibt es keine Schleifen.
Vielleicht hast du dich - falls du schon andere Programmiersprachen kennst -
gefragt, wie man dann Aktionen wiederholt ausführen kann.
Die Antwort ist: mit Rekursion.
Um dies besser zu verstehen, werden wir nun eine eigene map
-Funktion schreiben.
Wir werden eine map
-Funktion für Listen schreiben,
da wir diese auch für Zeichenketten verwenden können, indem wir
die Zeichenkette in eine Liste von Zeichen umwandeln.