【发布时间】:2014-07-08 19:30:10
【问题描述】:
我有一个函数:
@tailrec
def sampleTailRec(list: List[Int]) : List[Int] = {
if(list.nonEmpty) {
val value: Int = list.head * 2
List(value) ++ sampleTailRec(list.drop(1))
} else {
List()
}
}
这给了我以下编译错误
无法优化 @tailrec 注释方法 sampleTailRec:它包含一个不在尾部位置的递归调用 List(value) ++ sampleTailRec(list.drop(1))
我曾尝试用尾递归编写代码
无法理解为什么我的代码不在尾递归中以及如何使此方法尾递归?
【问题讨论】:
标签: scala tail-recursion