arrow-fx-coroutines / arrow.fx.coroutines.stream / scanMonoid

scanMonoid

fun <O> Stream<O>.scanMonoid(MO: Monoid<O>): Stream<O>

Folds this stream with the monoid for O while emitting all intermediate results.

import arrow.fx.coroutines.stream.*
import arrow.core.extensions.monoid

//sampleStart
suspend fun main(): Unit =
  Stream(1, 2, 3, 4)
    .scanMonoid(Int.monoid())
    .toList()
    .let(::println) //[0, 1, 3, 6, 10]
//sampleEnd

Do you like Arrow?

Arrow Org
<