При использовании каналов сопрограммы, как активировать оператор ->?

#kotlin #kotlin-coroutines

Вопрос:

В этом примере, https://kotlinlang.org/docs/channels.html#prime-numbers-with-pipeline

Нам даны две функции:

 fun CoroutineScope.numbersFrom(start: Int) = produce<Int> {
    var x = start
    while (true) send(x  ) // infinite stream of integers from start
}
 
 fun CoroutineScope.filter(numbers: ReceiveChannel<Int>, prime: Int) = produce<Int> {
    for (x in numbers) if (x % prime != 0) send(x)
}
 

Однако пример не компилируется

 numbersFrom(2) -> filter(2) -> filter(3) -> filter(5) -> filter(7)
 

Ошибка компиляции, которую я получаю, такова Expecting comma or ')'

Есть ли импорт, который я забываю использовать. Импорт, который у меня есть до сих пор, таков

 import kotlinx.coroutines.channels.ReceiveChannel
import kotlinx.coroutines.channels.produce
 

Комментарии:

1. Эта строка не является кодом котлина, это просто «представление» того, что произойдет в канале (функция фильтра будет запускаться по цепочке каждый раз, когда значение поступает в канал). Фактическим примером кода является блок под ним ( var cur = numbersFrom(2)n repeat(10) ... )

2. О, я понимаю. Было бы здорово иметь возможность это сделать. Например, он доступен в Scala