我们在 Scala 中试验并行集合,并想检查结果是否有序。为此,我在 REPL 上编写了一个小函数来检查我们正在生成的非常大的列表:
def isOrdered(l:List[Int]):Boolean = { l match {
case Nil => true
case x::Nil => true
case x::y::Nil => x>y
case x::y::tail => x>y & isOrdered(tail)
}
}
它以 stackOverflow 失败(这里的问题多么合适!)。我期待它是尾部优化的。怎么了?