@ Baishampayan @ Christophe Accidentally crossed over this post, turned out I've had exactly same need (about a year after you though), and decided to write a little library, Balagan: https://github.com/clojurewerkz/balagan
Basically, you can run predicate-based queries on your data and apply transformations. Check it out, maybe it helps On Tuesday, May 29, 2012 2:23:30 PM UTC+2, Baishampayan Ghose wrote: > > Great feedback, Christophe. I will get back to you with a better > implementation. > > Regards, > BG > > On Tue, May 29, 2012 at 5:44 PM, Christophe Grand > <chris...@cgrand.net<javascript:>> > wrote: > > The expansion idea is interesting: expand your selectors to a seq of > paths, > > redcue with get-in/assoc-in over thme to get the "extract" sense, reduce > > with update-in+dissoc to get the exclude. Could yield a nice > implementation. > > > > And now for some nitpicking: > > * nowadays I'm reluctant to extend a protocol to interfaces > > * apply where reduce should be used (L15) > > * what's the puprose of (juxt key val)? (L20) > > > > Christophe > > > > On Tue, May 29, 2012 at 12:37 PM, Baishampayan Ghose > > <b.g...@gmail.com<javascript:>> > > > wrote: > >> > >> Christophe, > >> > >> > Laurent dragged me in the conversation so here is my take > >> > https://gist.github.com/2823916 which strictly follows your proposed > >> > "syntax". > >> > >> I am glad that Laurent dragged you in, I got to see your beautiful > >> solution :-) > >> > >> Here is my (less beautiful) solution, `extract` along with its > >> counterpart `exclude` which does the opposite - > >> > >> https://www.refheap.com/paste/2911 > >> > >> Comments 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 clo...@googlegroups.com<javascript:> > >> Note that posts from new members are moderated - please be patient with > >> your first post. > >> To unsubscribe from this group, send email to > >> clojure+u...@googlegroups.com <javascript:> > >> For more options, visit this group at > >> http://groups.google.com/group/clojure?hl=en > > > > > > > > > > -- > > Professional: http://cgrand.net/ (fr) > > On Clojure: http://clj-me.cgrand.net/ (en) > > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group. > > To post to this group, send email to clo...@googlegroups.com<javascript:> > > Note that posts from new members are moderated - please be patient with > your > > first post. > > To unsubscribe from this group, send email to > > clojure+u...@googlegroups.com <javascript:> > > For more options, visit this group at > > http://groups.google.com/group/clojure?hl=en > > > > -- > 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.