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
- Los brazos se prueban en orden;
whenrefina un patrón. functionabre un match sobre el último argumento directo.- Las tuplas se desestructuran en el patrón:
("spring", n).
Palabras clave y builtins usados aquí
funfunctionletmatchwhenwith
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.
Paso 1 de 3 en Coincidencia de patrones; paso 8 de 29 en Fundamentos del lenguaje.