如果递归几乎清楚,例如
def product2(ints: List[Int]): Int = {
@tailrec
def productAccumulator(ints: List[Int], accum: Int): Int = {
ints match {
case Nil => accum
case x :: tail => productAccumulator(tail, accum * x)
}
}
productAccumulator(ints, 1)
}
我不确定核心运动。根据{{3}}," corecursion允许程序生成任意复杂且可能无限的数据结构,例如流"。例如像这样的构造
list.filter(...).map(...)
在filter
和map
操作后制作临时流。
filter
流后只会收集过滤后的元素,然后在map
中我们会更改元素。正确?
功能组合器是否对map
filter
使用递归执行
在Scala中是否有任何一个好的例子"比较递归和corecursion"?