Le 29 mai 2012 à 00:14, Jay Fields <j...@jayfields.com> a écrit : use destructuring?
I dont know, destructuring would, well, destructure the input map, giving you all the bits on the table, but unable to restructure it with the original shape. As I understand it, BG would like some kind of shape-preserving filter/dissoc. On May 28, 2012, at 6:12 PM, Laurent PETIT wrote: Le 29 mai 2012 à 00:03, Laurent PETIT <laurent.pe...@gmail.com> a écrit : Hello bg, For describing the subsets you want, why not use as a bottom representation something more connected with clojure datastructures? Like set literal => set of sibling keys Vector => path to an inner key Map => I see no usage for maps right now Your example could then become: #{[:name] [:email] [:adress #{:city :state}] [:spouse #{:name [:address #{:city :state}]} I don't have an implementation to offer, but as I see it, it could be some kind of superset of get-in, extending its syntax, if you will. What about that ? Le 26 mai 2012 à 06:59, Baishampayan Ghose <b.gh...@gmail.com> a écrit : Hi, I have a problem wherein I need to select subsets of a given map; think about select-keys, but with arbitrary nesting. For example, consider this map - (def my-map {:name "John Doe" :email "j...@doe.com" :address {:house "42" :street "Moon St." :city "San Francisco" :state "CA" :zip 76509 :mobile "+188888888"} :ssn "123456" :spouse {:name "Jane Doe" :ssn "654321" :relation :wife :address {:house "42" :street "Moon St." :city "Atlanta" :state "GA" :zip 76509 :mobile "+188888888"}}}) >From the above map, I want to extract this sub-map - {:spouse {:name "Jane Doe", :address {:state "GA", :city "Atlanta"}}, :name "John Doe", :email "j...@doe.com", :address {:state "CA", :city "San Francisco"}} What would be a good way to express this sub-map so that I can pass it on to a function? I am thinking about something like this - [:name :email {:address [:city :state]} {:spouse [:name {:address [:city :state]}]}] Example implementations are also welcome. Regards, BG -- Baishampayan Ghose b.ghose at gmail.com -- 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 members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com 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 clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com 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 clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en