arrow-fx-coroutines / arrow.fx.coroutines.stream / Stream / unfold
fun <S, O> unfold(s: S, f: (S) -> Pair<O, S>?): Stream<O>
Creates a stream by successively applying f until a null is returned, emitting
each output O and using each output S as input to the next invocation of f.
import arrow.fx.coroutines.stream.*
//sampleEnd
suspend fun main(): Unit =
Stream.unfold(0) { i -> if (i < 5) Pair(i, i + 1) else null }
.toList()
.let(::println) //[0, 1, 2, 3, 4]
//sampleStart
Do you like Arrow?
✖