typestar

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

  1. type sighting = { ... } declara la forma; construir nombra campos.
  2. { star with count = 5 } copia cambiando un campo.
  3. = compara por valor, no por referencia.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

Paso 1 de 3 en Tipos; paso 15 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →

Records en otros lenguajes