mappa
La funzione map in Scheme viene utilizzata per applicare una procedura a ciascun elemento di una lista (o più liste) e restituire una nuova lista contenente i risultati. Ciò lo rende ideale per la trasformazione dei dati.
La forma più semplice di map è simile alla seguente:
(map procedure list)- Procedura: Una funzione da applicare a ciascun elemento della lista.
- Lista: la lista i cui elementi verranno trasformati.
Esempio: raddoppia ogni elemento
(define (double x)
(* x 2))
(map double (list 1 2 3 4))- In questo caso, la funzione
doubleviene applicata a ciascun elemento dell’elenco(1 2 3 4). - Il risultato è una nuova lista con ogni elemento raddoppiato.
Uscita: (2 4 6 8)
Come funziona
Crea un nuovo elenco:
mapapplica la procedura fornita a ciascun elemento dell’elenco e raccoglie i risultati in un nuovo elenco.
Trasforma i dati:
- Viene utilizzato principalmente per le trasformazioni dei dati piuttosto che per l’esecuzione di effetti collaterali.
Esempio: utilizzo con più elenchi
Se vengono forniti più elenchi, map elabora gli elementi corrispondenti da ciascun elenco.
(define (sum x y)
(+ x y))
(map sum (list 1 2 3) (list 4 5 6))- La funzione
sumaggiunge gli elementi corrispondenti dai due elenchi e restituisce i risultati come un nuovo elenco.
Uscita: (5 7 9)
Riepilogo
- La funzione
mapè un potente strumento per trasformare le liste applicando una procedura a ciascun elemento. - A differenza di
for-each,mapproduce un nuovo elenco contenente i risultati dell’applicazione della procedura. - Supporta più elenchi, consentendo operazioni a livello di elementi su di essi.
Utilizzando map, puoi creare in modo efficiente versioni trasformate dei tuoi dati mantenendo invariati gli elenchi originali.