import kotlinx.coroutines.* import kotlinx.coroutines.channels.* suspend fun sum(s: List, c: Channel) { var sum = 0 for (v in s) { sum += v } c.send(sum) } fun main() = runBlocking { val s = listOf(7, 2, 8, -9, 4, 0) val c = Channel() launch { sum(s.subList(s.size / 2, s.size - 1), c) } launch { sum(s.subList(0, s.size / 2), c) } val x = c.receive() val y = c.receive() println("$x + $y = ${x + y}") }