In kotlin, "fold" is same in Javascript's reduce. "fold" has initial value
"reduce" in kotlin, you don't give initial value
val colors = listOf("red", "blue", "green", "black")
println(colors.reduce {
acc, curr -> "$acc, $curr"
}) // red, blue, green, black
println(colors.map {it.length}.fold(0) {
acc, curr -> acc + curr
}) // 17