typestar

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

  1. Hashtbl.replace escribe; un segundo replace sobreescribe.
  2. Hashtbl.find lanza; find_opt devuelve un option.
  3. List.assoc_opt lee una lista de asociación con seguridad.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 4 en Colecciones; paso 18 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →