title: In Clojure, how to group elements?
body: <p>In clojure, I want to aggregate this data:</p>
  
  <pre><code>(def data [[:morning :pear][:morning :mango][:evening :mango][:evening :pear]])
  (group-by first data)
  ;{:morning [[:morning :pear][:morning :mango]],:evening [[:evening :mango][:evening :pear]]}
  </code></pre>
  
  <p>My problem is that <code>:evening</code> and <code>:morning</code> are redundant. 
  Instead, I would like to create the following collection:</p>
  
  <pre><code>([:morning (:pear :mango)] [:evening (:mango :pear)])
  </code></pre>
  
  <p>I came up with:</p>
  
  <pre><code>(for [[moment moment-fruit-vec] (group-by first data)] [moment (map second moment-fruit-vec)])
  </code></pre>
  
  <p>Is there a more <strong>idiomatic</strong> solution?</p>