Secondo Elixir Tutorial on Enumerables and Streams:tubo
Il |> simbolo è l'operatore di pipe: prende semplicemente l'uscita dall'espressione sul suo lato sinistro e lo passa come ingresso alla chiamata di funzione alla sua destra lato.
Tutte le funzioni del modulo Enum sono impazienti.
Quindi qual è la differenza nelle seguenti dichiarazioni? Perché l'ultimo restituisce un risultato diverso?
iex(1)> 1..1_000 |> Enum.reverse |> Enum.take 5
[1000, 999, 998, 997, 996]
iex(2)> (Enum.reverse 1..1_000) |> Enum.take 5
[1000, 999, 998, 997, 996]
iex(3)> Enum.reverse 1..1_0000 |> Enum.take 5
[5, 4, 3, 2, 1]
Sì, ho dimenticato la precedenza degli operatori http://elixir-lang.org/docs/stable/elixir/Kernel.html#|%3E/2 – lad2025