Concept Flow - Sequence creation methods
Start
Choose creation method
sequenceOf(elements)
generateSequence(seed) { next }
sequence builder { yield() }
Use sequence
End
You start by choosing a method to create a sequence, then use it as needed.
val seq = sequenceOf(1, 2, 3) for (num in seq) { println(num) }
| Step | Action | Sequence State | Output |
|---|---|---|---|
| 1 | Create sequenceOf(1, 2, 3) | [1, 2, 3] | |
| 2 | Start iteration | [1, 2, 3] | |
| 3 | Yield first element | [2, 3] | 1 |
| 4 | Yield second element | [3] | 2 |
| 5 | Yield third element | [] | 3 |
| 6 | Iteration ends | [] |
| Variable | Start | After 1 | After 2 | After 3 | Final |
|---|---|---|---|---|---|
| seq | [1, 2, 3] | [2, 3] | [3] | [] | [] |
| num | undefined | 1 | 2 | 3 | 3 |
Sequence creation methods in Kotlin:
- sequenceOf(vararg elements): creates a sequence from given elements.
- generateSequence(seed) { next }: creates sequence by generating next values.
- sequence builder { yield() }: builds sequence lazily.
Sequences produce elements one by one when iterated.