# Kotlin Sequence

**URL:** <https://discuss.kotlinlang.org/t/kotlin-sequence/11608>\
**Category:** Uncategorized\
**Created:** [February 15, 2019, 8:26pm UTC](https://discuss.kotlinlang.org/t/kotlin-sequence/11608 "2019-02-15T20:26:45Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![forumdata](https://avatars.discourse-cdn.com/v4/letter/f/f14d63/32.png) [@forumdata](https://discuss.kotlinlang.org/u/forumdata)\
**Post date:** [February 15, 2019, 8:26pm UTC](https://discuss.kotlinlang.org/t/kotlin-sequence/11608/1 "2019-02-15T20:26:45Z")

</div>

Started learning kotlin. I had a question. Under the hood what data structures or processes are used for Kotlin sequence so that it avoids creating intermediary temporary objects. Any explanation or links would be helpful. Thank you

---

<div class="post-metadata">

**Author:** ![SackCastellon](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/sackcastellon/32/4553_2.png) [@SackCastellon](https://discuss.kotlinlang.org/u/SackCastellon)\
**Post date:** [February 15, 2019, 11:42pm UTC](https://discuss.kotlinlang.org/t/kotlin-sequence/11608/2 "2019-02-15T23:42:40Z")

</div>

It uses a decorator pattern on the iterator. You can view all the _decorators_ for each operation (`filter` → FilteringSequence, `map` → TransformingSequence, etc) here: [kotlin/Sequences.kt at master · JetBrains/kotlin · GitHub](https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/src/kotlin/collections/Sequences.kt)
