Кстати, даже до того, как я это исправил, вы могли бы сделать это другими способами:
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))