Stream.unfold
You're seeing just the function
unfold
, go back to Stream module for more information.
Specs
unfold(acc(), (acc() -> {element(), acc()} | nil)) :: Enumerable.t()
Emits a sequence of values for the given accumulator.
Successive values are generated by calling next_fun
with the previous
accumulator and it must return a tuple with the current value and next
accumulator. The enumeration finishes if it returns nil
.
Examples
iex> Stream.unfold(5, fn
...> 0 -> nil
...> n -> {n, n - 1}
...> end) |> Enum.to_list()
[5, 4, 3, 2, 1]