Назад к вопросам
JuniorТеорияЧасто
Что выведет программа (строки через пробел)?
fun main() {
val nums = listOf(2, 3, 4)
println(nums.fold(10) { acc, n -> acc + n })
println(nums.reduce { acc, n -> acc * n })
}19 24
- Ждать, что
reduceначнёт с0: начального значения у него нет, он берёт первый элемент,2, и произведение равно2 * 3 * 4. - Считать, что
10вfoldнужно лишь для пустого списка: накопление всегда начинается с начального значения, поэтому10входит в сумму.
- Что произойдёт с каждым из двух вызовов, если
nums— пустой список? - Как посчитать то же произведение через
fold, а не черезreduce?