Scala中的两个分区函数代码

时间:2016-12-01 12:49:24

标签: scala

我为列表编写了两个版本的函数分区。 以下是正确的:

  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
        }

0 个答案:

没有答案