match en F#
Una expresión que debe cubrir cada caso; el compilador audita.
// match is an expression: every arm yields a value, all cases covered.
let describe frames =
match frames with
| 0 -> "empty box"
| 1 -> "a single frame"
| n when n < 10 -> sprintf "%d frames, room to grow" n
| _ -> "packed full"
[0; 1; 6; 14] |> List.iter (describe >> printfn "%s")
// Tuples destructure right in the pattern.
let advice =
match ("spring", 12) with
| ("spring", n) when n > 10 -> "add a super"
| (season, _) -> sprintf "hold steady through %s" season
printfn "%s" advice
Cómo funciona
- Los brazos se prueban en orden;
whenrefina un patrón. _es el comodín que completa la cobertura.- Las tuplas se desestructuran en el patrón:
("spring", n).
Palabras clave y builtins usados aquí
letmatchwhenwith
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 491
- 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 Coincidencia de patrones; paso 7 de 27 en Fundamentos del lenguaje.