typestar

match en OCaml

Una expresión que el compilador audita por cobertura.

(* match is an expression; the compiler audits the coverage. *)
let describe count =
  match count with
  | 0 -> "empty quadrat"
  | 1 -> "a single animal"
  | n when n < 10 -> Printf.sprintf "%d animals, quiet" n
  | _ -> "teeming"

(* Tuples destructure right in the pattern. *)
let advice = function
  | ("spring", n) when n > 20 -> "return at the next low tide"
  | (season, _) -> "log and move on, " ^ season

let () =
  [0; 1; 6; 40] |> List.iter (fun n -> print_endline (describe n));
  print_endline (advice ("spring", 31));
  print_endline (advice ("autumn", 4))

Cómo funciona

  1. Los brazos se prueban en orden; when refina un patrón.
  2. function abre un match sobre el último argumento directo.
  3. Las tuplas se desestructuran en el patrón: ("spring", n).

Palabras clave y builtins usados aquí

El intento, en números

Líneas
17
Caracteres a escribir
551
Tokens
128
Ritmo de tres estrellas
65 tpm

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

Escribe este fragmento

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

← Anterior Siguiente →

match en otros lenguajes