我正在用 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)
}
我的问题是 case Nil => Nil
。我知道我需要这个是因为我可以申请Nil
这个功能。有没有办法确保Nil
不能以满足编译器的方式作为参数提供,以便我可以消除这种情况?