如果我有这个简单的循环,那就是势在必行的风格
val num = 100
var result = 0.0
for (i <- 0 until num) {
result += 4.0 * (1 - (i % 2) * 2) / (2 * i + 1)
}
如何将其更改为不可变且功能正常?
答案 0 :(得分:8)
您有一个初始值,您迭代集合值并对每个项目应用操作以最终返回一个 >单值。
这看起来很像可以变成折叠。
答案 1 :(得分:0)
另一种采用并行集合的方法
(1 to 100).par.map { i => 4.0 * (1 - (i % 2) * 2) / (2 * i + 1) }.sum