typestar

Listas y cons en Elixir

Armar una ruta de navegación anteponiendo, empalmando y recorriendo cabeza y cola.

# Lists are linked cells: | prepends in one step, ++ splices two lists.
ports = ["Reykjavik", "Nuuk"]
route = ["Halifax" | ports] ++ ["Tromso"]

IO.inspect(route, label: "route")
IO.puts("depart from #{hd(route)}")
IO.puts("then: #{Enum.join(tl(route), " -> ")}")
IO.puts("legs to sail: #{length(route) - 1}")

Cómo funciona

  1. ["Halifax" | ports] antepone en tiempo constante; ++ empalma "Tromso" al final.
  2. hd y tl parten la ruta en la primera escala y el resto.
  3. length(route) - 1 cuenta los tramos entre las escalas.

El intento, en números

Líneas
8
Caracteres a escribir
309
Tokens
92
Ritmo de tres estrellas
75 tpm

Al ritmo de tres estrellas de 75 tokens por minuto, este intento toma unos 74 segundos.

Escribe este fragmento

Paso 1 de 3 en Listas y tuplas; paso 7 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →