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