Stream.unfold/2

defmodule Stream do
  def unfold(acc, fun)
end

Emits a sequence of values for the given accumulator acc.

Successive values are generated by calling fun with the previous accumulator and it must return a tuple with the current value and next accumulator.

The enumeration finishes when fun returns nil.