if en Erlang
Todo guardas, probadas en orden; true es el brazo else.
%% if in Erlang is all guards; true is the else arm.
grade(Calls) ->
if
Calls >= 100 -> heavy;
Calls >= 30 -> steady;
Calls > 0 -> light;
true -> silent
end.
main(_) ->
[io:format("~p calls: ~p traffic~n", [C, grade(C)])
|| C <- [140, 45, 3, 0]],
ok.
Cómo funciona
- Cada brazo es una expresión de guarda, no un patrón.
- El cuerpo de la primera guarda cierta responde el if.
true ->atrapa todo lo que cayó a través.
Palabras clave y builtins usados aquí
endif
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 251
- Tokens
- 83
- Ritmo de tres estrellas
- 65 tpm
Al ritmo de tres estrellas de 65 tokens por minuto, este intento toma unos 77 segundos.
Paso 4 de 4 en Coincidencia de patrones; paso 7 de 31 en Fundamentos del lenguaje.