> Is there a reason something like this does not exist in clojure.core? > Is this an oversight or is there a reason this is not there?
Previous discussions on this subject: 1. http://groups.google.com/group/clojure/browse_thread/thread/e826fc303e440b7c/0e7bdba707b7982d (in particular Rich's response on the second page: http://groups.google.com/group/clojure/msg/1eb5cf8fa3248049 ) 2. http://groups.google.com/group/clojure/browse_thread/thread/66ff0b89229be894/c3d4a6dae45d4852 On Tue, Jul 5, 2011 at 7:14 PM, Asim Jalis <[email protected]> wrote: > Here is an example of using this: > > (--> "hello world" (.toUpperCase _) (.toLowerCase _) (.indexOf _ "w")) > > On Tue, Jul 5, 2011 at 3:50 PM, Asim Jalis <[email protected]> wrote: > > Frequently I want to use the thread macros (-> or ->>) except I need > > to thread the arguments into positions other than the first and the > > last. Or sometimes I have to go back and forth between first and last > > positions. Instead of alternating between -> and ->> and creating > > nesting, I've been using this thread macro which replaces underscore > > with the value of the previous expression. > > > > (defmacro --> > > "Threads the expr through the forms. Replaces all underscores (_) > > with x in the form, making a list of it if it is not a list already. > > If there are more forms, inserts the first form as the last item in > > second form, etc." > > ([x form] (if (seq? form) > > (with-meta `(~(first form) ~@(replace {'_ x} (next > > form))) (meta form)) > > (list form x))) > > ([x form & more] `(--> (--> ~x ~form) ~@more))) > > > > Is there a reason something like this does not exist in clojure.core? > > Is this an oversight or is there a reason this is not there? > > > > Asim > > > > -- > 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 > -- 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
