【发布时间】:2020-02-27 23:09:46
【问题描述】:
我正在为类似结构的列表编写一个简单的包含方法。我希望它针对尾递归进行优化,但无法弄清楚编译器为何抱怨。
Cons 情况是尾递归的,但不是重复情况,即使它们对相同的数据结构进行相同的调用。也许我没有正确理解尾递归。如果有人能解决这个问题,我将不胜感激。
final def contains[B >: A](target: B): Boolean = this match{
case Empty => false
case Cons( h, t ) => h == target || t.contains( target )
case Repeat( _, l ) => l.contains( target )
}
【问题讨论】:
标签: scala recursion tail-recursion