我尝试学习咖喱功能在Scala中, 看到代码斯卡拉咖喱功能
def isEven(v: Int): Boolean = v % 2 == 0
def evens(numbers: List[Int])(even: Int => Unit) {
for (number <- numbers; if isEven(number)) {
even(number)
}
}
val my = List.range(1, 100)
evens(my){println(_)} // works fine and prints the even numbers as expected
val recurse = evens(my) { yield _ } //compilation error
我想获得的结果为产量的积累,但我不能罚款怎么办,在斯卡拉文档或任何示例。 有什么想法?
我不认为你可以从'for'部分分开'yield',也不是我能想到的任何可能的使用情况对于这一点,你必须在'evens'回报'Unit',又该'产量“呢? – 2014-10-01 19:58:10
是的,“收益......”本身既不是陈述也不是表达。它只作为'for ... yield ...'表达式的一部分存在。 – 2014-10-01 20:36:59