arrow-fx / arrow.fx / Resource / use
fun <B> use(f: (A) -> Kind<F, B>): Kind<F, B>
Use the created resource When done will run all finalizers
import arrow.fx.IO
import arrow.fx.Resource
import arrow.fx.extensions.io.bracket.bracket
import arrow.fx.fix
fun acquireResource(): IO<Int> = IO { println("Getting expensive resource"); 42 }
fun releaseResource(r: Int): IO<Unit> = IO { println("Releasing expensive resource: $r") }
fun main() {
//sampleStart
val program = Resource(::acquireResource, ::releaseResource, IO.bracket()).use {
IO { println("Expensive resource under use! $it") }
}
//sampleEnd
program.fix().unsafeRunSync()
}
Do you like Arrow?
✖