map
De functie map in Scheme wordt gebruikt om een procedure toe te passen op elk element van een lijst (of meerdere lijsten) en een nieuwe lijst terug te geven met de resultaten. Ideaal voor het transformeren van gegevens.
De eenvoudigste vorm van map ziet er zo uit:
(map procedure list)- Functie: Een functie die op elk element van de lijst wordt toegepast.
- Lijst: De lijst waarvan de elementen worden getransformeerd.
Voorbeeld: elk element verdubbelen
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- Hier wordt de functie
doubletoegepast op elk element van de lijst(1 2 3 4). - Het resultaat is een nieuwe lijst waarin elk element is verdubbeld.
Output: (2 4 6 8)
Hoe het werkt
Maakt een nieuwe lijst:
mappast de opgegeven procedure toe op elk element van de lijst en verzamelt de resultaten in een nieuwe lijst.
Transformeert gegevens:
- Het wordt vooral gebruikt voor datatransformaties in plaats van voor het uitvoeren van neveneffecten.
Voorbeeld: met meerdere lijsten
Als meerdere lijsten worden opgegeven, verwerkt map de overeenkomstige elementen uit elke lijst.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- De functie
sumtelt overeenkomstige elementen uit de twee lijsten op en retourneert de resultaten als een nieuwe lijst.
Output: (5 7 9)
Samenvatting
- De functie
mapis een krachtig hulpmiddel om lijsten te transformeren door een procedure op elk element toe te passen. - In tegenstelling tot
for-eachproduceertmapeen nieuwe lijst met de resultaten van de toegepaste procedure. - Het ondersteunt meerdere lijsten, waardoor elementgewijze bewerkingen over lijsten heen mogelijk zijn.
Met map kun je efficiënt getransformeerde versies van je gegevens maken terwijl de oorspronkelijke lijsten ongewijzigd blijven.