(apply has-map (apply concat (map (fn [b] [(apply hash-map (apply concat
(butlast b))) (val (last b))]) (list {9 5 9 9 7 8} {3 4 5 6 7 0}))))
{{3 4, 5 6} 0, {8 9, 9 5} 8}I just added some noise! On Wed, Nov 18, 2009 at 2:05 PM, Sean Devlin <[email protected]>wrote: > user=>(def your-data [{:a 1 :b 2 :c 3} {:a 4 :b 5 :c 6} {:a 7 :b 8 :c > 9}]) > > user=>(into {} (map (juxt #(dissoc % :c) :c) your-data)) > > {{:a 1, :b 2} 3, {:a 4, :b 5} 6, {:a 7, :b 8} 9} > > On Nov 18, 8:36 am, Rich Hickey <[email protected]> wrote: > > On Wed, Nov 18, 2009 at 8:19 AM, Robert Campbell <[email protected]> > wrote: > > > Hey guys, > > > > > I'm having some trouble finding a nice way to perform a map > > > transformation I need. I need to transform this: > > > > > [ {:a 1 :b 2 :c 3} {:a 4 :b 5 :c 6} {:a 7 :b 8 :c 9} ] > > > > > into this: > > > > > { {:a 1 :b 2} 3 {:a 4 :b 5} 6 {:a 7 :b 8} 9 } > > > > > I wanted to use map, but each f in map only returns one value, so I > > > couldn't figure it out. Here is what I have now: > > > > > (def result (ref {})) > > > (for [item coll] > > > (dosync (alter result assoc (dissoc item :c) (item :c)))) > > > ; result should now have correct value > > > > > I also wrote a recursive version to build the map without using a ref, > > > but I feel like I'm missing a simpler way.. > > > > (into {} > > (map (fn [m] [(dissoc m :c) (:c m)]) > > [{:a 1 :b 2 :c 3} {:a 4 :b 5 :c 6} {:a 7 :b 8 :c 9}])) > > > > -> {{:a 1, :b 2} 3, {:a 4, :b 5} 6, {:a 7, :b 8} 9} > > > > Rich > > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to [email protected] > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > [email protected]<clojure%[email protected]> > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to [email protected] Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/clojure?hl=en
