在“惯用的”
Scala中表达这个功能的一些想法是什么.或者更准确地说,有没有办法去除本地变量而不牺牲可读性?
def solve(threshold: Int)(f: Int => Int): Int = { var sum = 0 var curr = 0 while(sum < threshold) { sum += f(curr) curr += 1 } curr }
我唯一可以想到的是这个,但是在我看来,它的阅读时间越来越长.
def solve2(threshold: Int)(f: Int => Int): Int = { val resultIterator = Iterator.iterate (0,0) { case (curr,sum) => (curr + 1,sum + f(curr)) } (resultIterator find (_._2 >= threshold)).get._1 }