title: group-by by multiple keys in Clojure
body: <p>How to group a collection of maps by multiple keys?</p>
  
  <p>For example:</p>
  
  <pre><code>(def m1 [{:a 1 :b 2 :c 3}
           {:a 1 :b 2 :c 4}
           {:a 1 :b 4 :c 3}
           {:a 1 :b 4 :c 3}])
  
  (group-by-x [:a :b] m1)
  </code></pre>
  
  <p>I'd like to return this:</p>
  
  <pre><code>[{:a 1 :b 2} [{:a 1 :b 2 :c 3}{:a 1 :b 2 :c 4}],
   {:a 1 :b 4} [{:a 1 :b 4 :c 3}{:a 1 :b 4 :c 3}]]
  </code></pre>