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
lists:seq(1, 4)arma el rango.zipempareja elementos; los largos deben coincidir.unziprecupera ambas listas desde los pares.
Palabras clave y builtins usados aquí
length
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.
Paso 3 de 4 en El módulo lists; paso 13 de 31 en Fundamentos del lenguaje.