संयोग से पहले भी मैं इस तय आप इस अन्य तरीकों से कर सकता है:
scala> List[Iterable[Int]](List(2, 3, 1), List(2, 1, 3)).sorted
res0: List[Iterable[Int]] = List(List(2, 1, 3), List(2, 3, 1))
scala> List(List(2, 3, 1), List(2, 1, 3)).sorted(Ordering[Iterable[Int]])
res1: List[List[Int]] = List(List(2, 1, 3), List(2, 3, 1))
लेकिन अब यह काम करता है की तरह आप उम्मीद होगी।
संपादित करें: अपेक्षित अंतर्निहितता के साथ स्केची विचलन के मुद्दों के कारण मैंने इसे डिफ़ॉल्ट दायरे से बाहर कर दिया। एक अंतर्निहित रूपांतरण होने के कारण जो इस तरह से बाध्य होता है:
implicit def SeqDerived[CC[X] <: collection.Seq[X], T](implicit ord: Ordering[T]): Ordering[CC[T]]
... मुद्दों के लिए एक संभावित नुस्खा है। यह 2.9 में उपलब्ध होगा, लेकिन आपको इसे निम्नानुसार आयात करना होगा। यद्यपि आप है कि क्या छोटे सूचियों से बड़ा या लंबे समय तक सूचियों की तुलना में कम कर रहे हैं के रूप में एक विकल्प बनाने की जरूरत है
scala> val lists = List(List(2, 3, 1), List(2, 1, 3))
lists: List[List[Int]] = List(List(2, 3, 1), List(2, 1, 3))
scala> lists.sorted
<console>:9: error: could not find implicit value for parameter ord: Ordering[List[Int]]
lists.sorted
^
scala> import Ordering.Implicits._
import Ordering.Implicits._
scala> lists.sorted
res1: List[List[Int]] = List(List(2, 1, 3), List(2, 3, 1))
कोषगत आदेश (जो आप का वर्णन), अलग तरह से आकार सूचियों के लिए definable है। गणितीय रूप से मान्य ऑर्डर बनाने के लिए दोनों तरीकों का उपयोग किया जा सकता है, और जब छोटे <लंबा विकल्प अधिक उपयोग मामलों में फिट हो सकता है, तो कम> लंबा विकल्प भी उपयोग करता है। यही कारण हो सकता है कि मानक पुस्तकालय में सूचियों पर कोई अंतर्निहित आदेश नहीं दिया गया है, लेकिन मुझे अभी भी शर्त है कि सामान्य उपयोगिता की कमी एक अधिक संभावित कारण है। –