How to implement a lazy list in Kotlin
If the value of an element or expression is not evaluated when it's defined, but rather when it is first accessed, it is said to be lazily evaluated. There are many situations where it comes in handy. For example, you might have a list A and you want to create a filtered list from it, let's call it list B. If you do something like the following, the filter operation will be performed during the declaration of B:
val A= listOf(1,2,3,4) var B=A.filter { it%2==0 }
This forces the program to initialize B as soon as it is defined. While this may not be a big deal for a small list, it can cause latency with bigger objects. Also, we can delay the object creation until we first need it. In this recipe, we will learn how we can implement a lazy list.
Getting ready
I'll be using IntelliJ IDEA for writing and running Kotlin code; you are free to use any IDE that can do the same task.
How to do it…
To create a lazy list, we need to convert the list into a sequence...