map
La funzione map in Scheme applica una procedura a ogni elemento di una lista (o di più liste) e restituisce una nuova lista con i risultati. Ideale per la trasformazione dei dati.
La forma più semplice di map è:
(map procedure list)- Procedura: funzione applicata a ogni elemento della lista.
- Lista: lista i cui elementi verranno elaborati.
Esempio: raddoppiare ogni elemento
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- Qui la funzione
doubleviene applicata a ogni elemento della lista(1 2 3 4). - Il risultato è una nuova lista con valori raddoppiati.
Output: (2 4 6 8)
Come funziona
Crea una nuova lista:
mapraccoglie i risultati della procedura in una nuova lista.
Trasforma i dati:
- A differenza di
for-each,mapsi concentra sulla trasformazione dei dati piuttosto che sugli effetti collaterali.
- A differenza di
Esempio: più liste
Se vengono fornite più liste, map elabora gli elementi corrispondenti di ciascuna lista.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- La funzione
sumsomma gli elementi corrispondenti delle due liste e restituisce i risultati come nuova lista.
Output: (5 7 9)
Riepilogo
- La funzione
mapè uno strumento potente per trasformare liste elemento per elemento. - A differenza di
for-each,mapproduce una nuova lista. - Supporta più liste e consente operazioni elemento per elemento.
Con map è possibile creare versioni trasformate dei dati senza modificare le liste originali.