Re: Help with data structure transformation

2015-06-07 Thread gianluca torta
see also this page: http://clojure.org/sequences where for is listed among the seq library functions HTH Gianluca -- You received this message because you are subscribed to the Google Groups Clojure group. To post to this group, send email to clojure@googlegroups.com Note that posts from new

Re: Help with data structure transformation

2015-06-06 Thread gvim
On 06/06/2015 05:01, Sean Corfield wrote: Page 84 is where it shows that maps are a sequence of pairs. The destructuring in James's code is on vectors -- the pairs in the sequence. Hope that helps? Sean Page 84 describes the sequence abstraction in general but it's the implicit seq in for

Re: Help with data structure transformation

2015-06-06 Thread Daniel Kersten
x and y are destructured into the key and value of each map entry. Z is nil. The second example uses seq to convert the map into a sequence of map entries and then it destructures the seq (not the map entries themselves). The third example does destructure the map entries. (let [[a b c] [1 2]]

Re: Help with data structure transformation

2015-06-06 Thread Erik Assum
(for [[x y z] {:a aa :b bb :c cc}] [x y z]) ([:c cc nil] [:b bb nil] [:a aa nil]);; WTF? So her, I guess, your taking each entry in the map and destructuring them into the three vars x, y, and z. Since each map entry is a pair, the third var z will be nil. Erik. -- i farta Den 6.

Help with data structure transformation

2015-06-05 Thread gvim
I have a YeSQL query: (get-signs {:em emails}) ;; emails is a vector of email address strings ... which produces this list of maps: ( {:email a...@gmail.com, :sign Scorpio, :planet Mercury, :surname Blogs, :first_name Joe} {:email a...@gmail.com, :sign Leo, :planet Moon, :surname Blogs,

Re: Help with data structure transformation

2015-06-05 Thread James Reeves
Perhaps something like: (defn planet-sign-map [signs] (into {} (map (juxt :planet :sign) signs))) (defn extract-planet-signs [signs] (for [[email signs] (group-by :email signs)] {:email email, :signs (planet-sign-map signs)})) (defn find-planet-signs [emails] (extract-planet-signs

Re: Help with data structure transformation

2015-06-05 Thread gvim
I must re-read Clojure Programming (O'Reilly) in that case as I don't recall the authors mentioning this kind of destructuring. gvim On 06/06/2015 03:33, Fluid Dynamics wrote: On Friday, June 5, 2015 at 10:07:05 PM UTC-4, g vim wrote: That works but I missed this possibility because I'm

Re: Help with data structure transformation

2015-06-05 Thread gvim
That works but I missed this possibility because I'm still not clear how: (group-by :email signs) which produces a map of the form: {a...@gmail.com [{:email a...@gmail.com, :sign Cancer, :planet Mars, :surname Blogs, :first_name Joe} . ]} can be destructured with the

Re: Help with data structure transformation

2015-06-05 Thread Fluid Dynamics
On Friday, June 5, 2015 at 10:07:05 PM UTC-4, g vim wrote: That works but I missed this possibility because I'm still not clear how: (group-by :email signs) which produces a map of the form: {a...@gmail.com javascript: [{:email a...@gmail.com javascript:, :sign Cancer,

Re: Help with data structure transformation

2015-06-05 Thread gvim
Yes, I'm fine with the concept. Just can't remember coming across it in the textbooks but maybe I wasn't paying attention :) gvim On 06/06/2015 04:08, Sean Corfield wrote: It’s because if you treat a hash map as a sequence — as `for` does — you get a sequence of pairs (key/value — map

Re: Help with data structure transformation

2015-06-05 Thread Sean Corfield
Page 84 is where it shows that maps are a sequence of pairs. The destructuring in James's code is on vectors -- the pairs in the sequence. Hope that helps? Sean On Fri, Jun 5, 2015 at 8:11 PM, gvim gvi...@gmail.com wrote: Yes, I'm fine with the concept. Just can't remember coming across it

Re: Help with data structure transformation

2015-06-05 Thread Sean Corfield
It’s because if you treat a hash map as a sequence — as `for` does — you get a sequence of pairs (key/value — map entries): (seq {:a 1 :b 2}) ;;= ([:a 1] [:b 2]) Does that help? Sean On Jun 5, 2015, at 7:41 PM, gvim gvi...@gmail.com wrote: I must re-read Clojure