いくつかの一般的なアルゴリズムを実装するscalaをいじっています。バブルソートを再作成しようとしているときに、この問題に遭遇しました
値を一番上にバブルする内部ループの実装を次に示します。
def pass(xs:List[Int]):List[Int] = xs match {
case Nil => Nil
case x::Nil => x::Nil
case l::r::xs if(l>r) => r::pass(l::xs)
case l::r::xs => l::pass(r::xs)
}
私の問題は caseNil => Nil
です。私はNil
この機能に適用できるので、これが必要であることを理解しています。Nil
このケースを排除できるように、コンパイラを満足させる方法で引数として提供できないようにする方法はありますか?