Kotlin: как передать последовательность (сопрограммы) как Iterable <T>

Я не понимаю, как пройти Coroutine, где требуется Iterable.

Предположим, что у меня есть следующая функция:

fun <T> iterate(iterable: Iterable<T>) { for (obj in iterable) { // do something.. } } 

Я хочу передать сопрограмму:

 iterate( ?? { for (obj in objects) { yield(transform(obj)) } }) 

Что я должен положить вместо ?? для этого работать? Я попробовал buildIterator и buildSequence но ни один из них не работает.

Вы можете использовать asIterable() :

 val seq = buildSequence { for (i in 1..5) { yield(i) } }.asIterable() iterate(seq)