Coursera Scala 5-2:Pairs和Tuple


Coursera Scala 5-2:Pairs和Tuple

pair: (x,y)
scala> val (label,value) = (1,"s")
label: Int = 1
value: String = s

scala> (1,"s")
res0: (Int, String) = (1,s)

超過兩個元素的就是tuple了

(T1,....,Tn)是Scala.Tuplen[T1,...,Tn]的縮寫
(e1,....,en)是Scala.Tuplen(e1,...,en)的縮寫
tuple模式中也和上面的(e1,...,en)一樣

Example

歸併算法實現。

object mergesort{
    def msort(xs: List[Int]):List[Int] = {
        val n = xs.length/2
        if(n==0) xs
        else{
            def merge(xs:List[Int],ys: List[Int]):List[Int] = (xs,ys)match {
                case (Nil,ys) => ys
                case (xs,Nil) => xs
                case (x::xs1,y::ys1) => 
                if(x<y) x::merge(xs1,ys1)
                else y::merge(xs,ys1)
            }
            val (fst,snd) = xs splitAt n
            merge(msort(fst),msort(snd))
        }

    }
    val nums = List(2,-4,5,7,1)
    msort(nums)
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章