1
我正在嘗試學習如何使用摺疊向左並向右摺疊。這是我第一次學習函數式編程。我無法理解什麼時候使用摺疊,何時使用摺疊。在我看來,很多時候這兩種功能是可以互換的。例如(在Scala中)這兩個函數:向左摺疊並向右摺疊
val nums = List(1, 2, 3, 4, 5)
val sum1 = nums.foldLeft(0) { (total, n) =>
total + n
}
val sum2 = nums.foldRight(0) {(total, n) =>
total + n
}
兩者都產生相同的結果。爲什麼和什麼時候我會選擇一個或另一個?
現在嘗試減去或做除法,看看你是否仍然得到相同的答案... – alfasin