Classificando por dois campos em Clojure

Supondo que você tenha dados representados por um vetor de mapas:

(def data [{:lastname "Brown" :firstname "John"}
{:lastname "Brown" :firstname "Jack"}
{:lastname "Apple" :firstname "Bruce"}
{:lastname "Crown" :firstname "King"}])

Para classificá-lo por: sobrenome e, em seguida, por: primeiro nome, você pode usar um snippet incrível de clojure:

(sort-by (juxt :lastname :firstname) data)