SequenceScope 
    The scope for yielding values of a Sequence or an Iterator, provides yield and yieldAll suspension functions.
Since Kotlin
1.3See also
Samples
import kotlin.test.*
fun main() { 
   //sampleStart 
   val sequence = sequence {
    val start = 0
    // yielding a single value
    yield(start)
    // yielding an iterable
    yieldAll(1..5 step 2)
    // yielding an infinite sequence
    yieldAll(generateSequence(8) { it * 3 })
}
println(sequence.take(7).toList()) // [0, 1, 3, 5, 8, 24, 72] 
   //sampleEnd
}import kotlin.test.*
fun main() { 
   //sampleStart 
   fun fibonacci() = sequence {
    var terms = Pair(0, 1)
    // this sequence is infinite
    while (true) {
        yield(terms.first)
        terms = Pair(terms.second, terms.first + terms.second)
    }
}
println(fibonacci().take(10).toList()) // [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 
   //sampleEnd
}Functions
Link copied to clipboard
                  Yields a collections of values to the Iterator being built and suspends until all these values are iterated and the next one is requested.
Since Kotlin 1.3
Yields all values from the iterator to the Iterator being built and suspends until all these values are iterated and the next one is requested.
Since Kotlin 1.3
Yields potentially infinite sequence of values to the Iterator being built and suspends until all these values are iterated and the next one is requested.
Since Kotlin 1.3