map-Funktion
Eine map-Funktion programmieren
Du hast in vorherigen Kapiteln schon oft die Funktion List.map verwendet.
Diese Funktion wendet eine gegebene Funktion auf jedes Element einer Liste an.
Man würde sie für das Beispiel so verwenden:
List.map (\x -> x * 2) [ 4, 2, 1, 3 ]
-- Ergebnis: [ 8, 4, 2, 6 ]
Wir wollen uns hier damit beschäftigen, wie man die Funktion map
selbst programmieren kann.
Falls du schon Erfahrung mit anderen Programmiersprachen hast,
würdest du vielleicht jetzt an Schleifen denken, um eine solche Funktion zu programmieren.
In vielen Sprachen heißen diese for- oder while-Schleifen.
In Elm und anderen funktionalen Programmiersprachen gibt es aber 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.