我为列表编写了两个版本的函数分区。 以下是正确的:
def partition(list: List[Int],x: Int, head:List[Int], tail:List[Int]): List[Int]= (list.head) match{
case (a) if a>=x => partition(list.tail,x,head,a::tail)
case (a) if a<x => partition(list.tail,x,a::head,tail)
case _ =>head:::tail
}
我可以知道为什么以下代码出错了吗?
def partition(list: List[Int],x: Int, head:List[Int], tail:List[Int]): List[Int]= (list.head) match{
case _ if _>=x => partition(list.tail,x,head,_::tail)
case _ if _<x => partition(list.tail,x,_::head,tail)
case _ =>head:::tail
}