【发布时间】:2011-12-10 15:01:11
【问题描述】:
我正在看下面的代码
http://aperiodic.net/phil/scala/s-99/p26.scala
具体
def flatMapSublists[A,B](ls: List[A])(f: (List[A]) => List[B]): List[B] =
ls match {
case Nil => Nil
case sublist@(_ :: tail) => f(sublist) ::: flatMapSublists(tail)(f)
}
我收到大值的 StackOverflowError 大概是因为该函数不是尾递归的。有没有办法转换函数以适应大数字?
【问题讨论】:
标签: scala recursion tail-recursion