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..5arma el rango de días hábiles;Enum.counteinle preguntan sin expandirlo.10..50//8agrega un paso y cuenta los dientes del engranaje de ocho en ocho.Enum.to_listdeletrea el rango yEnum.sumlo 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.
Paso 3 de 3 en Listas y tuplas; paso 9 de 27 en Fundamentos del lenguaje.