Cel: posortować listę par uporządkowanych (x,y) według y a potem malejąco według x
Gdyby nie to, że ma być malejąco, wystarczyłoby:

val l = List((5,0), (1,2), (1,1), (0,1))
l.sortBy{case (x,y) => (y,x) }

Gdy mamy Int-y to można zrobić

l.sortBy{case (x,y) => (y,-x) }

gorzej gdy mamy jakieś inne obiekty...
Fajnie byłoby:

l.sortBy(_._1).reverse.sortBy(_._2)

Ale nie ma pewności, że sortBy zawsze będzie stabilne. Ze sprawdzenia wynika, że jest.
Co sądzicie o jego stabilności i tym rozwiązaniu? W dokumentacji przy sortWith i sorted jest zaznaczone że są stabilne, a przy sortBy nie.
Można oczywiście napisać bardziej zaawansowaną funkcje do sortWith ale w/w rozwiązanie wydaje się jednak znacznie czytelniejsze.

PS. Brakuje kolorowania składni Scala.

dodanie znaczników <code class="scala"> - Furious Programming