Cadenas de colecciones en Kotlin
filter, map y compañía se leen de izquierda a derecha y nunca mutan.
fun main() {
val legsKm = listOf(8.4, 11.2, 6.9, 14.5, 9.1)
// Chains read left to right; each call returns a new list.
val hardDays = legsKm.filter { it > 9.0 }
println("$hardDays add up to ${hardDays.sum()} km")
val paces = legsKm.map { km -> (60 * km / 4.5).toInt() }
println("Minutes per leg: $paces")
println("Total: ${legsKm.sumOf { it }} km in ${legsKm.count()} days")
println("Any rest day? ${legsKm.any { it < 7.0 }}")
}
Cómo funciona
filter { it > 9.0 }se queda con los días duros;sumlos pliega.maptransforma cada tramo en minutos con un parámetro de lambda con nombre.sumOf,countyanyresponden las preguntas usuales en una llamada cada una.
Palabras clave y builtins usados aquí
funitval
El intento, en números
- Líneas
- 13
- Caracteres a escribir
- 432
- Tokens
- 121
- Ritmo de tres estrellas
- 70 tpm
Al ritmo de tres estrellas de 70 tokens por minuto, este intento toma unos 104 segundos.
Paso 2 de 3 en Colecciones; paso 11 de 27 en Fundamentos del lenguaje.