Data processing - oliyh/learning-clojure GitHub Wiki

Some data

(def vehicles [
    {:type :car :colour :red :age 3}
    {:type :bicycle :colour :blue :age 1}
    {:type :boat :colour :red :age 8}
  ])

Grouping

(group-by :colour vehicles)

Sorting

(sort-by :age vehicles)
(reverse (sort-by :age vehicles))

Higher order

(reverse 
  (sort-by second 
    (map 
      (fn [k v](/oliyh/learning-clojure/wiki/k-v) [k (count v)]) 
      (group-by :colour vehicles))))