typestar

El operador pipe en Elixir

Una cosecha de miel fluye por map, filter, sum y round sin una sola llamada anidada.

# |> feeds the left result in as the first argument on the right.
harvest = [12.5, 8.0, 15.25, 6.75, 11.0]

total =
  harvest
  |> Enum.map(fn lbs -> lbs * 0.9 end)
  |> Enum.filter(fn lbs -> lbs > 7 end)
  |> Enum.sum()
  |> Float.round(1)

IO.puts("market-ready honey: #{total} lbs")
IO.puts("raw off the frames: #{Float.round(Enum.sum(harvest), 1)} lbs")

Cómo funciona

  1. |> pasa cada resultado como primer argumento de la llamada siguiente.
  2. El encadenamiento pesa cada cuadro, descarta los livianos y pliega el resto en un total.
  3. La última línea hace un paso sin pipes, para el antes y el después.

Palabras clave y builtins usados aquí

El intento, en números

Líneas
12
Caracteres a escribir
347
Tokens
92
Ritmo de tres estrellas
70 tpm

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

Escribe este fragmento

Paso 3 de 3 en Enum y pipes; paso 15 de 27 en Fundamentos del lenguaje.

← Anterior Siguiente →