This commit is contained in:
SuperCraftAlex
2024-03-09 18:34:25 +01:00
parent a2f89fc962
commit 6f80ab30a3
31 changed files with 860 additions and 890 deletions

View File

@@ -0,0 +1,14 @@
package blitz.func
fun <S, T : S> Monad<Sequence<T>>.reduce(operation: (acc: S, T) -> S): Monad<S> =
bind { it.reduce(operation) }
fun <S, T : S> Monad<Iterable<T>>.reduceIter(operation: (acc: S, T) -> S): Monad<S> =
bind { it.reduce(operation) }
fun <T> Monad<Sequence<T>>.reduce(each: (T) -> Unit): Monad<Unit> =
Monad { this@reduce.impure().forEach { each(it) } }
fun <T> Monad<Iterable<T>>.reduceIter(each: (T) -> Unit): Monad<Unit> =
Monad { this@reduceIter.impure().forEach { each(it) } }