Use a bounded sequence pipeline and materialize a small result.

sequence A sequence can describe a pipeline, but this example immediately takes a small result.

Sequence Basics

count
SequenceBasics.kt
Replay: real traced execution (multi-file project)
fun main() {
    val count = 2
    val result = sequenceOf("red", "blue", "gold")
        .take(count)
        .joinToString("|")

    println("count=$count")
    println("result=$result")
}
fun main() {
    val count = 1
    val result = sequenceOf("red", "blue", "gold")
        .take(count)
        .joinToString("|")

    println("count=$count")
    println("result=$result")
}
fun main() {
    val count = 3
    val result = sequenceOf("red", "blue", "gold")
        .take(count)
        .joinToString("|")

    println("count=$count")
    println("result=$result")
}
  1. count ← 2, result ← red|blue

    1fun main() {2    val count→ 2 = 2 //@count=1, 33    val result→ red|blue = sequenceOf("red", "blue", "gold")4        .take(count2)5        .joinToString("|")67    println("count=$count2")8    println("result=$resultred|blue")9}
    outputcount=2
    result=red|blue
  1. count ← 1, result ← red

    1fun main() {2    val count→ 1 = 13    val result→ red = sequenceOf("red", "blue", "gold")4        .take(count1)5        .joinToString("|")67    println("count=$count1")8    println("result=$resultred")9}
    outputcount=1
    result=red
  1. count ← 3, result ← red|blue|gold

    1fun main() {2    val count→ 3 = 33    val result→ red|blue|gold = sequenceOf("red", "blue", "gold")4        .take(count3)5        .joinToString("|")67    println("count=$count3")8    println("result=$resultred|blue|gold")9}
    outputcount=3
    result=red|blue|gold