Menu
Coddy logo textTech

Accumulare con Fold

Fa parte della sezione Logica e flusso del percorso Kotlin di Coddy. Lezione 34 di 63.

fold parte da un accumulatore iniziale esplicito ed elabora gli elementi in ordine. La sua lambda riceve l’accumulatore e l’elemento successivo, e restituisce l’accumulatore successivo. Il valore iniziale è anche il risultato per un input vuoto.

All'interno di main:

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

L'accumulatore parte da uno e diventa due, sei e ventiquattro.

fold usa il suo accumulatore iniziale come risultato per un input vuoto.

challenge icon

Sfida

Medio

Completa sumWithFold con i parametri values: List<Int>. Usa fold con valore iniziale zero per restituire la somma dei valori.

A meno che non siano indicati limiti più rigorosi sopra, le raccolte contengono al massimo 100 elementi a ogni livello e gli argomenti interi e i valori interi delle raccolte sono compresi tra -1000 e 1000. Il testo fornito per l'analisi può includere rappresentazioni non valide o fuori intervallo, come descritto.

Restituisci un valore di tipo Int. Mantieni il codice di input/output fornito. Legge gli argomenti scalari uno per riga; una lista inizia con il suo conteggio seguito dai suoi elementi, mentre una mappa inizia con il conteggio delle sue voci seguito da ciascuna chiave e valore. Le liste annidate ripetono il formato conteggio ed elementi per ogni riga. Il main fornito stampa il valore restituito seguito da un carattere di nuova riga. Le liste usano il formato standard tra parentesi quadre di Kotlin; non stampare etichette aggiuntive.

Provalo tu

fun sumWithFold(values: List<Int>): Int {
    // Scrivi qui la tua soluzione.
    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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Logica e flusso

Esercitati da solo: Playground Kotlin