typestar

Rangos en Elixir

Dos extremos y un paso reemplazan a una lista entera de números.

# A range stores two endpoints and a step, never the whole list.
weekdays = 1..5
IO.puts("open #{Enum.count(weekdays)} days a week")
IO.puts("open on day 6? #{6 in weekdays}")

# ..// sets a step; Enum.to_list spells the range out.
gears = 10..50//8
IO.inspect(Enum.to_list(gears), label: "gear teeth")
IO.puts("total teeth: #{Enum.sum(gears)}")

Cómo funciona

  1. 1..5 arma el rango de días hábiles; Enum.count e in le preguntan sin expandirlo.
  2. 10..50//8 agrega un paso y cuenta los dientes del engranaje de ocho en ocho.
  3. Enum.to_list deletrea el rango y Enum.sum lo pliega en un total.

El intento, en números

Líneas
9
Caracteres a escribir
345
Tokens
80
Ritmo de tres estrellas
70 tpm

Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 69 segundos.

Escribe este fragmento

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

← Anterior Siguiente →