Menu
Coddy logo textTech

Acumular con Fold

Parte de la sección Lógica y flujo del Journey de Kotlin de Coddy. Lección 34 de 63.

fold comienza con un acumulador inicial explícito y procesa los elementos en orden. Su lambda recibe el acumulador y el siguiente elemento, y devuelve el siguiente acumulador. El valor inicial también es el resultado para una entrada vacía.

Dentro de main:

println(listOf(2, 3, 4).fold(1) { product, value -> product * value })

El acumulador comienza en uno y se convierte en dos, seis y veinticuatro.

fold usa su acumulador inicial como resultado de una entrada vacía.

challenge icon

Desafío

Intermedio

Completa sumWithFold con parámetros values: List<Int>. Usa fold con el valor inicial cero para devolver la suma de los valores.

A menos que se indiquen límites más estrictos arriba, las colecciones contienen como máximo 100 elementos en cada nivel, y los argumentos enteros y los valores enteros de las colecciones están entre -1000 y 1000. El texto proporcionado para el análisis puede incluir representaciones no válidas o fuera de rango, tal como se describe.

Devuelve un valor de tipo Int. Conserva el código de entrada/salida proporcionado. Lee los argumentos escalares, uno por línea; una lista comienza con su cantidad, seguida de sus elementos, y un mapa comienza con la cantidad de sus entradas, seguida de cada clave y valor. Las listas anidadas repiten el formato de cantidad y elementos para cada fila. El main proporcionado imprime el valor devuelto seguido de un salto de línea. Las listas usan el formato estándar entre corchetes de Kotlin; no imprimas etiquetas adicionales.

Pruébalo tú mismo

fun sumWithFold(values: List<Int>): Int {
    // Escribe tu solución aquí.
    return 0
}
fun main() {
    val valuesCount = readln().toInt()
    val values = mutableListOf<Int>()
    for (i0 in 0 until valuesCount) {
        val valuesItem = readln().toInt()
        values.add(valuesItem)
    }
    println(sumWithFold(values))
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y flujo

Practica por tu cuenta: Playground de Kotlin