小编Ben*_*'da的帖子

建议一个更清洁的功能方式

这是一些命令式代码:

var sum = 0
val spacing = 6
var x = spacing
for(i <- 1 to 10) {
  sum += x * x
  x += spacing
}
Run Code Online (Sandbox Code Playgroud)

以下是我尝试"功能化"上述代码的两个尝试:

// Attempt 1
(1 to 10).foldLeft((0, 6)) {
  case((sum, x), _) => (sum + x * x, x + spacing)
}

// Attempt 2
Stream.iterate ((0, 6)) { case (sum, x) => (sum + x * x, x + spacing) }.take(11).last
Run Code Online (Sandbox Code Playgroud)

我认为可能有更清洁,更好的功能方式来做到这一点.那会是什么?

PS:请注意,以上只是用于说明问题的示例代码; 它不是来自真正的应用程序代码.

functional-programming scala idioms

2
推荐指数
2
解决办法
300
查看次数

标签 统计

functional-programming ×1

idioms ×1

scala ×1