Ordenar en Erlang
sort toma un fun; keysort ordena tuplas etiquetadas por posición.
%% sort takes a fun; keysort orders tagged tuples by position.
main(_) ->
Calls = [{"5560199", 12}, {"5560142", 3}, {"5560170", 21}],
ByLength = lists:sort(fun({_, A}, {_, B}) -> A >= B end, Calls),
io:format("Longest first: ~p~n", [hd(ByLength)]),
ByNumber = lists:keysort(1, Calls),
[io:format("~s held ~p min~n", [N, M]) || {N, M} <- ByNumber],
io:format("Reversed: ~p~n",
[lists:reverse(lists:sort([3, 1, 2]))]).
Cómo funciona
- El fun de orden de dos argumentos responde true para conservar.
lists:keysort(1, Calls)ordena por el primer elemento.reversevoltea barato una lista ya ordenada.
Palabras clave y builtins usados aquí
endfunhd
El intento, en números
- Líneas
- 12
- Caracteres a escribir
- 419
- Tokens
- 157
- Ritmo de tres estrellas
- 60 tpm
Al ritmo de tres estrellas de 60 tokens por minuto, este intento toma unos 157 segundos.
Paso 4 de 4 en El módulo lists; paso 14 de 31 en Fundamentos del lenguaje.