我正在学习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中,命令式版本似乎很尴尬.