typestar

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

  1. El fun de orden de dos argumentos responde true para conservar.
  2. lists:keysort(1, Calls) ordena por el primer elemento.
  3. reverse voltea barato una lista ya ordenada.

Palabras clave y builtins usados aquí

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.

Escribe este fragmento

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

← Anterior Siguiente →