typestar

Variantes en OCaml

Un conjunto cerrado de formas; el match debe cubrirlas todas.

(* A variant type is a closed set of shapes; match covers them all. *)
type observation =
  | Routine
  | Rare of string
  | Damage of int  (* percent of the pool disturbed *)

let respond = function
  | Routine -> "log and move on"
  | Rare species -> "photograph the " ^ species
  | Damage pct when pct > 50 -> Printf.sprintf "report: %d%% lost" pct
  | Damage pct -> Printf.sprintf "note %d%% disturbance" pct

let () =
  [Routine; Rare "octopus"; Damage 70; Damage 15]
  |> List.iter (fun o -> print_endline (respond o))

Cómo funciona

  1. Los casos cargan datos: Rare of string, Damage of int.
  2. Las guardas when parten un caso por severidad.
  3. Agrega un caso y cada match incompleto deja de compilar.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
15
Caracteres a escribir
506
Tokens
96
Ritmo de tres estrellas
65 tpm

Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 89 segundos.

Escribe este fragmento

Paso 3 de 3 en Coincidencia de patrones; paso 10 de 29 en Fundamentos del lenguaje.

← Anterior Siguiente →