【发布时间】:2016-06-01 10:01:30
【问题描述】:
我有以下问题。
class NonEmpty(elem: Tweet, left: TweetSet, right: TweetSet) extends TweetSet {
@tailrec final def filterAcc(p: Tweet => Boolean, acc: TweetSet): TweetSet =
if(p(elem))
(this remove elem).filterAcc(p, acc incl elem)
else
(this remove elem).filterAcc(p, acc)
}
Scala 告诉我,它无法优化@tairec,因为我的方法包含一个针对超类型的递归调用。 (NonEmpty 的超类是 TweetSet 类,其中定义了方法 filterAcc)。如何处理这样的错误?
【问题讨论】:
标签: scala recursion functional-programming