F # - Mappe
In F #, una mappa è un tipo speciale di set che associa i valori a chiave. Una mappa viene creata in modo simile alla creazione degli insiemi.
Creazione di mappe
Le mappe vengono create creando una mappa vuota utilizzando Map.empty e aggiungendo elementi utilizzando la funzione Aggiungi. Il seguente esempio lo dimostra:
Esempio
(* Create an empty Map *)
let students =
   Map.empty. (* Creating an empty Map *)
      Add("Zara Ali", "1501").
      Add("Rishita Gupta", "1502").
      Add("Robin Sahoo", "1503").
      Add("Gillian Megan", "1504");;
printfn "Map - students: %A" students
(* Convert a list to Map *)
let capitals =
   [ "Argentina", "Buenos Aires";
      "France ", "Paris";
      "Chili", "Santiago";
      "Malaysia", " Kuala Lumpur";
      "Switzerland", "Bern" ]
   |> Map.ofList;;
printfn "Map capitals : %A" capitalsQuando compili ed esegui il programma, restituisce il seguente output:
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
Map capitals : map
[("Argentina", "Buenos Aires"); ("Chili", "Santiago"); ("France ", "Paris");
("Malaysia", " Kuala Lumpur"); ("Switzerland", "Bern")]È possibile accedere ai singoli elementi nella mappa utilizzando la chiave.
Esempio
(* Create an empty Map *)
let students =
   Map.empty. (* Creating an empty Map *)
      Add("Zara Ali", "1501").
      Add("Rishita Gupta", "1502").
      Add("Robin Sahoo", "1503").
      Add("Gillian Megan", "1504");;
printfn "Map - students: %A" students
(*Accessing an element using key *)
printfn "%A" students.["Zara Ali"]Quando compili ed esegui il programma, restituisce il seguente output:
Map - students: map
[("Gillian Megan", "1504"); ("Rishita Gupta", "1502"); ("Robin Sahoo", "1503
");
("Zara Ali", "1501")]
"1501"Operazioni di base sulle mappe
Aggiungi il nome del modulo
La tabella seguente mostra le operazioni di base sulle mappe:
| Membro | Descrizione | 
|---|---|
| Inserisci | Restituisce una nuova mappa con l'associazione aggiunta alla mappa data. | 
| ContainsKey | Verifica se un elemento si trova nel dominio della mappa. | 
| Contare | Il numero di associazioni nella mappa. | 
| È vuoto | Restituisce vero se non ci sono associazioni nella mappa. | 
| Articolo | Cerca un elemento nella mappa. Genera KeyNotFoundException se non esiste alcuna associazione nella mappa. | 
| Rimuovere | Rimuove un elemento dal dominio della mappa. Non viene sollevata alcuna eccezione se l'elemento non è presente. | 
| TryFind | Cerca un elemento nella mappa, restituendo un file Some valore se l'elemento è nel dominio della mappa e None altrimenti. | 
L'esempio seguente mostra gli usi di alcune delle funzionalità di cui sopra:
Esempio
(* Create an empty Map *)
let students =
   Map.empty. (* Creating an empty Map *)
      Add("Zara Ali", "1501").
      Add("Rishita Gupta", "1502").
      Add("Robin Sahoo", "1503").
      Add("Gillian Megan", "1504").
      Add("Shraddha Dubey", "1505").
      Add("Novonil Sarker", "1506").
      Add("Joan Paul", "1507");;
printfn "Map - students: %A" students
printfn "Map - number of students: %d" students.Count
(* finding the registration number of a student*)
let found = students.TryFind "Rishita Gupta"
match found with
| Some x -> printfn "Found %s." x
| None -> printfn "Did not find the specified value."Quando compili ed esegui il programma, restituisce il seguente output:
Map - students: map
[("Gillian Megan", "1504"); ("Joan Paul", "1507"); ("Novonil Sarker", "1506"
);
("Rishita Gupta", "1502"); ("Robin Sahoo", "1503");
("Shraddha Dubey", "1505"); ("Zara Ali", "1501")]
Map - number of students: 7
Found 1502.