Slide 17
Slide 17 text
Data classes and Chain-able Sequences
data class Person(val name: String, val age: Int)
val people =
listOf(Person("Chris Martin", 31),
Person("Will Champion", 32),
Person("Jonny Buckland", 33),
Person("Guy Berryman", 34),
Person("Mhris Cartin", 30))
println(people
.asSequence() // convert to sequence
.filter { it.age > 30 } // lazy eval (intermediate op)
.map {
it.name.split(" ").map {it[0]}.joinToString("")
} // lazy eval (intermediate op)
.map { it.toUpperCase() } // lazy eval (intermediate op)
.toList()) // terminal operation
Tip: Combine these with coroutines to construct declarative data pipelines.
@preslavrachev / (https://preslav.me), 2019 17