map
Funktionen map i Scheme tillämpar en procedur på varje element i en lista (eller flera listor) och returnerar en ny lista med resultaten. Idealisk för datatransformation.
Den enklaste formen av map ser ut så här:
(map procedure list)- Procedur: funktionen som tillämpas på varje element i listan.
- Lista: listan vars element ska bearbetas.
Exempel: fördubbla varje element
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- Här tillämpas funktionen
doublepå varje element i listan(1 2 3 4). - Det ger en ny lista där varje värde har fördubblats.
Utdata: (2 4 6 8)
Så fungerar det
Skapar en ny lista:
mapsamlar resultaten från proceduren i en ny lista.
Transformerar data:
- Till skillnad från
for-eachfokuserarmappå datatransformation snarare än bieffekter.
- Till skillnad från
Exempel: flera listor
Om flera listor anges bearbetar map motsvarande element från varje lista.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- Funktionen
sumadderar motsvarande element från de två listorna och returnerar resultaten som en ny lista.
Utdata: (5 7 9)
Sammanfattning
- Funktionen
mapär ett kraftfullt verktyg för att transformera listor element för element. - Till skillnad från
for-eachproducerarmapen ny lista. - Den stöder flera listor och tillåter elementvisa operationer.
Med map kan du skapa transformerade versioner av data utan att ändra originalen.