Componer sin ocultar el costo
Encadenar transformaciones mejora la expresividad, pero cada map o filter sobre una List crea una lista intermedia.
Para colecciones chicas y medianas, prioriza que la intencion se entienda:
val nombres = lecturas
.filter { it.nota >= 6 }
.map { it.estudiante }
Para grandes volumenes, Kotlin ofrece Sequence para evaluar operaciones de manera diferida:
val nombres = lecturas.asSequence()
.filter { it.nota >= 6 }
.map { it.estudiante }
.toList()
No optimices por intuicion: primero identifica una necesidad y mide.