Menu
Coddy logo textTech

Fold ile Biriktirme

Coddy'nin Kotlin Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 34 / 63.

fold, açıkça belirtilmiş bir başlangıç biriktiricisiyle başlar ve öğeleri sırayla işler. Lambda, biriktiriciyi ve bir sonraki öğeyi alır ve bir sonraki biriktiriciyi döndürür. Başlangıç değeri, boş bir girdinin sonucu olarak da kullanılır.

main içinde:

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

Biriktirici birden başlar ve iki, altı ve yirmi dört olur.

fold, başlangıç akümülatörünü boş girdi sonucu olarak kullanır.

challenge icon

Görev

Orta

sumWithFold işlevini values: List<Int> parametresiyle tamamlayın. Değerlerin toplamını döndürmek için başlangıç değeri sıfır olan fold kullanın.

Yukarıda daha sıkı sınırlar belirtilmedikçe, koleksiyonlar her düzeyde en fazla 100 öğe içerir ve tamsayı bağımsız değişkenleri ile tamsayı koleksiyon değerleri -1000 ile 1000 arasındadır. Ayrıştırma için sağlanan metin, açıklandığı gibi geçersiz veya aralık dışı gösterimler içerebilir.

Int türünde bir değer döndürün. Sağlanan girdi/çıktı kodunu koruyun. Bu kod, skaler bağımsız değişkenleri satır başına bir tane okur; bir liste, ardından öğeleri gelen sayısıyla başlar ve bir map, ardından her anahtar ve değer gelen giriş sayısıyla başlar. İç içe listeler, her satır için sayı ve öğe biçimini tekrarlar. Sağlanan main, dönüş değerini ve ardından bir satır sonu yazdırır. Listeler, Kotlin'in standart köşeli parantezli biçimini kullanır; ek etiket yazdırmayın.

Kendin dene

fun sumWithFold(values: List<Int>): Int {
    // Çözümünüzü buraya yazın.
    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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Kotlin playground