Ruby:
mylist = [[1,2,3],
[3,5,9],
[1,1,1],
[10,23,14]]
sortedlist = mylist.sort {|a,b| b.inject {|sum, n| sum + n } <=> a.inject {|sum,n| sum + n}}
Я не уверен в правилах Code Golf, и я не писал метод foo, но сумма легко может быть получена в foo.
Мой тестовый вывод:
puts sortedlist.inspect
[[10, 23, 14], [3, 5, 9], [1, 2, 3], [1, 1, 1]]