2016-06-18 16 views
0

Ich habe versucht, Mustervergleich und Paare in Scala zu lernen und es zu verwenden, um die Zusammenführungssortierung aber das Musterabgleich zu implementieren. Aber die Musterübereinstimmung zum Extrahieren von Kopf- und Schwanzpaar funktioniert nicht. Was fehlt mir im folgenden Code?Mustervergleich für eine Liste von Paaren scala

def merge(xs: List[Int], ys: List[Int]): List[Int] = 
    (xs, ys) match { 
    case (x: Int, y: Int) :: (xs1: List[Int], ys1: List[Int]) => 
     if (x < y) x :: merge(xs1, ys) 
     else y :: merge(xs, ys1) 
    case (x: List[Int], Nil) => x 
    case (Nil, y: List[Int]) => y 
    } 
+1

Bitte auch nicht nur sagen "funktioniert nicht". Geben Sie Fehlermeldungen, Details zu unerwarteten Ergebnissen, was auch immer. –

Antwort

2

Sie haben einen Syntaxfehler in der ersten case-Anweisung, ändern Sie ihn auf

case (x :: xs1 , y :: ys1) 

von

case (x: Int, y: Int) :: (xs1: List[Int], ys1: List[Int]) 

Sie versuchen, ein Tupel enthält Listen übereinstimmen, nicht Liste von Tupeln

Verwandte Themen