Hashtbl y listas de asociación en OCaml
El mapa mutable, y el hábito inmutable para datos chicos.
(* Hashtbl is the mutable map; assoc lists are the immutable habit. *)
let tally = Hashtbl.create 8
let () =
Hashtbl.replace tally "limpet" 40;
Hashtbl.replace tally "anemone" 12;
Hashtbl.replace tally "limpet" 43; (* replace overwrites *)
Printf.printf "Limpets: %d\n" (Hashtbl.find tally "limpet");
Printf.printf "Species tracked: %d\n" (Hashtbl.length tally);
(* An assoc list does the same job immutably for small data. *)
let notes = [("north", "clear"); ("ledge", "surge")] in
match List.assoc_opt "ledge" notes with
| Some note -> print_endline ("Ledge: " ^ note)
| None -> print_endline "Ledge unsampled"
Cómo funciona
Hashtbl.replaceescribe; un segundo replace sobreescribe.Hashtbl.findlanza;find_optdevuelve un option.List.assoc_optlee una lista de asociación con seguridad.
Palabras clave y builtins usados aquí
inletmatchwith
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 615
- Tokens
- 130
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 130 segundos.
Paso 1 de 4 en Colecciones; paso 18 de 29 en Fundamentos del lenguaje.