Comprensiones de lista en Erlang
Mapea y filtra en un corchete; los generadores se cruzan.
%% A comprehension maps and filters in one bracket.
main(_) ->
Lines = lists:seq(1, 10),
Odd = [L || L <- Lines, L rem 2 =:= 1],
io:format("Odd-numbered lines: ~p~n", [Odd]),
Jacks = [{L, L * 100} || L <- Lines, L > 7],
io:format("High jacks: ~p~n", [Jacks]),
%% Two generators cross like a patch matrix.
Patches = [{A, B} || A <- [1, 2], B <- [7, 8]],
io:format("Possible patches: ~p~n", [Patches]).
Cómo funciona
[L || L <- Lines, L rem 2 =:= 1]filtra mientras camina.- La plantilla arma tuplas tan fácil como valores.
- Dos generadores rinden cada combinación.
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 403
- Tokens
- 133
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 133 segundos.
Paso 2 de 3 en Recursión y comprensiones; paso 9 de 31 en Fundamentos del lenguaje.