typestar

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

  1. [L || L <- Lines, L rem 2 =:= 1] filtra mientras camina.
  2. La plantilla arma tuplas tan fácil como valores.
  3. 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.

Escribe este fragmento

Paso 2 de 3 en Recursión y comprensiones; paso 9 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →