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]