I found Stream.unfold to be quite useful for places where I don’t know how many iterations are needed to get to the end.
stream = Stream.unfold(10, fn x ->
if x != 0 do
IO.puts "Hello"
{:ok, x - 1}
else
nil
end
end)
Stream.run(stream)
There’s also Enum.reduce_while, but it needs an enumerable as input to start with.


















