Are "mutable" streams possible?

Is it possible to “mutate” a stream to achieve the following behaviour:

stream = Stream.cycle([1, 2, 3])
{[1], stream} = stream |> MyStream.mutable_take(1) |> Enum.to_list()
{[2], stream} = stream |> MyStream.mutable_take(1) |> Enum.to_list()
{[3], stream} = stream |> MyStream.mutable_take(1) |> Enum.to_list()
1 Like

Maybe related to Best way to iterate a Stream?

2 Likes

Thank you @jola! Definitely related.