Records en OCaml
Paquetes con nombre inmutables, con igualdad estructural incluida.
(* Records are immutable named bundles; with copies and updates. *)
type sighting = { species : string; count : int; pool : string }
let star = { species = "sea star"; count = 3; pool = "ledge" }
(* The with syntax copies, changing only what you name. *)
let more = { star with count = 5 }
let () =
Printf.printf "%s: %d in the %s pool\n" star.species star.count
star.pool;
Printf.printf "Recount: %d (original still %d)\n" more.count
star.count;
(* Structural equality comes free. *)
Printf.printf "Same sighting? %b\n" (star = { more with count = 3 })
Cómo funciona
type sighting = { ... }declara la forma; construir nombra campos.{ star with count = 5 }copia cambiando un campo.=compara por valor, no por referencia.
Palabras clave y builtins usados aquí
intletstringtypewith
El intento, en números
- Líneas
- 15
- Caracteres a escribir
- 556
- Tokens
- 107
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 99 segundos.
Paso 1 de 3 en Tipos; paso 15 de 29 en Fundamentos del lenguaje.