小编jus*_*out的帖子

以下命令性代码的最有效功能版本是什么?

我正在学习Scala,我想知道使用Scala的函数编程功能表达这种命令式模式的最佳方式.

def f(l: List[Int]): Boolean = {
  for (e <- l) {
    if (test(e))
      return true
    }
  }
  return false
}
Run Code Online (Sandbox Code Playgroud)

我能想到的最好的是:

l map { e => test(e) } contains true
Run Code Online (Sandbox Code Playgroud)

但是效率较低,因为它在每个元素上调用test(),而命令式版本在第一个满足test()的元素上停止.是否有更惯用的函数式编程技术可以用于同样的效果?在Scala中,命令式版本似乎很尴尬.

functional-programming scala

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

标签 统计

functional-programming ×1

scala ×1