List.reduce()
Сворачивает коллекцию в одно значение, начиная с первого элемента.
Сигнатура
fun <S, T : S> Iterable<T>.reduce(operation: (acc: S, T) -> S): Sreduce() последовательно объединяет элементы: первый элемент становится начальным аккумулятором. На пустой коллекции бросает исключение.
val nums = listOf(1, 2, 3, 4)
val product = nums.reduce { acc, x -> acc * x }
println(product) // 24