typestar

zip y seq en Erlang

lists:seq cuenta, zip empareja, unzip separa de vuelta.

%% lists:zip pairs; lists:seq counts; unzip splits back apart.
main(_) ->
    Lines = lists:seq(1, 4),
    States = [idle, ringing, idle, fault],

    Board = lists:zip(Lines, States),
    io:format("Board: ~p~n", [Board]),

    [io:format("Line ~p: ~p~n", [L, S]) || {L, S} <- Board],

    {Nums, Sts} = lists:unzip(Board),
    io:format("Numbers again: ~p~n", [Nums]),
    io:format("Ringing count: ~p~n",
              [length([S || S <- Sts, S =:= ringing])]).

Cómo funciona

  1. lists:seq(1, 4) arma el rango.
  2. zip empareja elementos; los largos deben coincidir.
  3. unzip recupera ambas listas desde los pares.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
14
Caracteres a escribir
418
Tokens
145
Ritmo de tres estrellas
60 tpm

Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 145 segundos.

Escribe este fragmento

Paso 3 de 4 en El módulo lists; paso 13 de 31 en Fundamentos del lenguaje.

← Anterior Siguiente →