Mengakumulasi dengan Fold
Termasuk bagian Logika & Alur dalam perjalanan Kotlin di Coddy. Pelajaran 34 dari 63.
fold dimulai dengan akumulator awal yang dinyatakan secara eksplisit dan memproses elemen secara berurutan. Lambda-nya menerima akumulator dan elemen berikutnya, lalu mengembalikan akumulator berikutnya. Nilai awal juga menjadi hasil untuk input kosong.
Di dalam main:
println(listOf(2, 3, 4).fold(1) { product, value -> product * value })Akumulator dimulai dari satu dan menjadi dua, enam, lalu dua puluh empat.
fold menggunakan akumulator awalnya sebagai hasil untuk input kosong.
Tantangan
SedangLengkapi sumWithFold dengan parameter values: List<Int>. Gunakan fold dengan nilai awal nol untuk mengembalikan jumlah nilai.
Kecuali jika batas yang lebih ketat disebutkan di atas, koleksi berisi paling banyak 100 elemen pada setiap tingkat, dan argumen bilangan bulat serta nilai koleksi bilangan bulat berada di antara -1000 dan 1000. Teks yang diberikan untuk diurai dapat mencakup representasi yang tidak valid atau di luar rentang, seperti yang dijelaskan.
Kembalikan nilai bertipe Int. Pertahankan kode input/output yang disediakan. Kode tersebut membaca argumen skalar, satu per baris; list dimulai dengan jumlah elemennya, lalu diikuti elemen-elemennya, dan map dimulai dengan jumlah entrinya, lalu diikuti setiap key dan nilai. Untuk list bertingkat, format jumlah-elemen diulangi untuk setiap baris. main yang disediakan mencetak nilai yang dikembalikan, lalu satu baris baru. List menggunakan format standar Kotlin dengan tanda kurung siku; jangan cetak label tambahan.
Coba sendiri
fun sumWithFold(values: List<Int>): Int {
// Tulis solusimu di sini.
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))
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
4Koleksi Bersarang
List Berisi ListMenelusuri BarisRingkasan BarisMeratakan List BertingkatRangkuman, Baris Tempat Duduk7Alur Pemrosesan Koleksi
Transformasi dengan MapMemfilter NilaiMenguji Aturan KoleksiMengakumulasi dengan FoldRangkuman: Total yang Disetujui2Map Bagian 2
Menelusuri Entri MapKunci dan NilaiMap FrekuensiMap BersarangRingkasan: Laporan Frekuensi5Proyek: Buku Kontak
Menyimpan KontakMencari KontakLatihan sendiri: Playground Kotlin