mapa
Funkcja map w Scheme służy do zastosowania procedury do każdego elementu listy (lub wielu list) i zwrócenia nowej listy zawierającej wyniki. Dzięki temu idealnie nadaje się do przekształcania danych.
Najprostsza forma map wygląda następująco:
(map procedure list)- Procedura: Funkcja do zastosowania do każdego elementu listy.
- Lista: Lista, której elementy zostaną przekształcone.
Przykład: podwój każdy element
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- Tutaj funkcja
doublejest stosowana do każdego elementu listy(1 2 3 4). - Rezultatem jest nowa lista z podwojonym każdym elementem.
Wyjście: (2 4 6 8)
Jak to działa
Tworzy nową listę:
mapstosuje podaną procedurę do każdego elementu listy i zbiera wyniki w nową listę.
Przekształca dane:
- Służy głównie do transformacji danych, a nie do wywoływania efektów ubocznych.
Przykład: użycie z wieloma listami
Jeśli dostępnych jest wiele list, map przetwarza odpowiednie elementy z każdej listy.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- Funkcja
sumdodaje odpowiednie elementy z obu list i zwraca wyniki w postaci nowej listy.
Wyjście: (5 7 9)
Podsumowanie
- Funkcja
mapto potężne narzędzie do przekształcania list poprzez zastosowanie procedury do każdego elementu. - W przeciwieństwie do
for-each,maptworzy nową listę zawierającą wyniki zastosowania procedury. - Obsługuje wiele list, umożliwiając operacje na nich na elementach.
Używając map, możesz efektywnie tworzyć przekształcone wersje swoich danych, zachowując jednocześnie oryginalne listy.