case en Erlang
Matchea un valor contra patrones, en orden, como expresión.
%% case matches a value against patterns, in order, as an expression.
main(_) ->
Board = [{3, idle}, {7, ringing}, {12, {fault, "wet pair"}}],
[report(Line, State) || {Line, State} <- Board],
ok.
report(Line, State) ->
Note = case State of
idle -> "free for traffic";
ringing -> "attend now";
{fault, Why} -> "out of service: " ++ Why;
_ -> "unknown"
end,
io:format("Line ~p: ~s~n", [Line, Note]).
Cómo funciona
case State ofprueba cada brazo de patrón por turno.{fault, Why}ata desde adentro del valor matcheado.- El case entero responde un valor atado a
Note.
Palabras clave y builtins usados aquí
caseendof
El intento, en números
- Líneas
- 14
- Caracteres a escribir
- 398
- Tokens
- 123
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 114 segundos.
Paso 3 de 4 en Coincidencia de patrones; paso 6 de 31 en Fundamentos del lenguaje.