Jörg Winter
12/21/2020, 1:29 PMpakoito
12/21/2020, 1:35 PMpakoito
12/21/2020, 1:36 PMsimon.vergauwen
12/21/2020, 2:17 PMval x: List<suspend () -> Unit>
which is the same as [IO ()]
you can define.
suspend fun <A> List<suspend () -> A>.sequence(): List<A> =
map { it() }
Which is the same as sequence :: [IO a] -> IO [a]
. Similarly you can define sequence_
traverse
etc. Those functions are still missing from Arrow Core tho.simon.vergauwen
12/21/2020, 2:19 PMinline
feature of KotlinJörg Winter
12/21/2020, 9:01 PMtypealias Action<A> = suspend () -> A
fun createFetchAction(uuid: UUID): Action<Either<Nel<String>, String>> =
{ "result for $uuid".right() }
suspend fun programWithActions() {
val uuids = listOf(UUID.randomUUID(), UUID.randomUUID())
val acts = uuids.map { createFetchAction(it) }
val result = either<Nel<String>, String> {
// execute something from the list of IO actions
acts[0]()()
}
println(result)
}
Jörg Winter
12/21/2020, 9:36 PMeither
computation (0.12.0-SNAPSHOT) is not discoverable from the types anymore. I have to look it up in the interface for EitherEffect, but that I guess, is just a different mindset for someone coming from Haskell for example...pakoito
12/21/2020, 10:25 PMpakoito
12/21/2020, 10:26 PMpakoito
12/21/2020, 10:26 PMasync { println("A") }
async { println("B") }
pakoito
12/21/2020, 10:26 PMpakoito
12/21/2020, 10:27 PMpakoito
12/21/2020, 10:27 PMpakoito
12/21/2020, 10:27 PMvar a = 0
async { a += 1 }
async { println(a) }
pakoito
12/21/2020, 10:27 PMpakoito
12/21/2020, 10:28 PMpakoito
12/21/2020, 10:29 PMnew Promise({ listenToEvents() })
new Promise({ sendEventTrigger() })
pakoito
12/21/2020, 10:29 PMpakoito
12/21/2020, 10:30 PMthen
, and then with async/awaitpakoito
12/21/2020, 10:30 PMnew Promise({ listenToEvents() }).andThen({ new Promise({ sendEventTrigger() }) })
pakoito
12/21/2020, 10:31 PMasync function doEvent() {
await listenToEvents();
await sendEventTrigger();
}
pakoito
12/21/2020, 10:33 PMpakoito
12/21/2020, 10:33 PMpakoito
12/21/2020, 10:33 PMpakoito
12/21/2020, 10:34 PMpakoito
12/21/2020, 10:35 PMpakoito
12/21/2020, 10:35 PMpakoito
12/21/2020, 10:37 PMJörg Winter
12/22/2020, 8:54 PM