Scala将循环可变聚合更改为不可变

Cab*_*ero 0 functional-programming scala immutability

如果我有这个简单的循环,那就是势在必行的风格

val num = 100
var result = 0.0
for (i <- 0 until num) {
    result += 4.0 * (1 - (i % 2) * 2) / (2 * i + 1)
}
Run Code Online (Sandbox Code Playgroud)

我如何将其更改为不可变和功能?

vpt*_*ron 8

你有一个初始值,我们通过遍历集合值和应用的运行在每个项目最终能够返回一个单一的值.

这看起来很像可以变成折叠的东西.