arrow-fx-coroutines / arrow.fx.coroutines.stream / repartition
fun <O> Stream<O>.repartition(S: Semigroup<O>, f: (O) -> Chunk<O>): Stream<O>
Repartitions the input with the function f. On each step f is applied
to the input and all elements but the last of the resulting sequence
are emitted. The last element is then appended to the next input using the
Semigroup S.
import arrow.fx.coroutines.stream.*
import arrow.core.extensions.semigroup
//sampleStart
suspend fun main(): Unit =
Stream("Hel", "l", "o Wor", "ld")
.repartition(String.semigroup()) { s -> Chunk.iterable(s.split(" ")) }
.toList()
.let(::println) //[Hello, World]
//sampleEnd
Do you like Arrow?
✖