I've always wondered why there isn't a "thread-in-the-middle" macro (or should it be "thread-wherever"?), with special syntax to indicate where to thread like so:
(--> foo (bar x _ y) (baz _ x y) (test x y _)) Should be easy to implement I guess... On Feb 8, 4:29 pm, Baishampayan Ghose <b.gh...@gmail.com> wrote: > On Wed, Feb 8, 2012 at 9:46 PM, Simon Holgate <simon.holg...@gmail.com> wrote: > > Could anyone point me to a description of "->" and "->>", please? > > > I've seen a few references to them (e.g. git://gist.github.com/1761143.git) > > but nothing in "Programming Clojure". Google doesn't seem to like > > searching for such strings. > > These macros are collectively called the "threading macros". `->` is > called "thread first" and `->>` is called "thread last". These macros > lets you write deeply nested function invocations in a relatively flat > manner. > > Something like > > (-> foo > (bar x) > (baz y) > (quux z)) > > gets re-written as (quux (baz (bar foo x) y) z). So `->` basically > threads the first expression through the subsequent forms, inserting > it as the second item in the list (aka the first arg). > > Similarly, something like > > (->> foo > (bar x) > (baz y) > (quux z)) > > gets re-written as (quux z (baz y (bar x foo))). > > More docs here -http://clojuredocs.org/clojure_core/clojure.core/-%3E > &http://clojuredocs.org/clojure_core/clojure.core/-%3E%3E > > 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