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で失敗します(ここでの質問にどれほど適切か!)。私はそれがテール最適化されることを期待していました。どうしたの?