invoke
Deprecated
Deprecated in favor of the Effect Runtime
Replace with
import arrow.core.continuations.result
Content copied to clipboard
result.eager(block)
Content copied to clipboard
Provides a computation block for Result which is build on top of Kotlin's Result Std operations.
import arrow.core.*
import arrow.core.computations.result
fun main() {
result { // We can safely use assertion based operation inside blocks
kotlin.require(false) { "Boom" }
} // Result.Failure<Int>(IllegalArgumentException("Boom"))
result {
Result.failure<Int>(RuntimeException("Boom"))
.recover { 1 }
.bind()
} // Result.Success(1)
result {
val x = Result.success(1).bind()
val y = Result.success(x + 1).bind()
x + y
} // Result.Success(3)
}
Content copied to clipboard