May 2018
Intermediate to advanced
412 pages
9h 3m
English
In Elixir, the Enum module is greedy. This means that when you pass it a collection, it potentially consumes all the contents of that collection. It also means the result will typically be another collection. Look at the following pipeline:
| | [ 1, 2, 3, 4, 5 ] |
| | #=> [ 1, 2, 3, 4, 5 ] |
| | |> Enum.map(&(&1*&1)) |
| | #=> [ 1, 4, 9, 16, 25 ] |
| | |> Enum.with_index |
| | #=> [ {1, 0}, {4, 1}, {9, 2}, {16, 3}, {25, 4} ] |
| | |> Enum.map(fn {value, index} -> value - index end) |
| | #=> [1, 3, 7, 13, 21] |
| | |> IO.inspect #=> [1, 3, 7, 13, 21] |
The first map function takes the original list and creates a new list of its squares. with_index takes this list and returns a list of tuples. The next map then subtracts the index ...
Read now
Unlock full access