You could also let every function take a map as input/output. Then, b could return a map with key :result-b or similar. This result would then pass through the rest of the functions and be accessible in e.
Like this: a ; => {:result-a ...} b ; => {:result-b ... :result-a ...} ... d ; => {... :result-a ...} e ; use :result-a This technique is brought up in: http://www.infoq.com/presentations/Thinking-in-Data Jonathan On Fri, Oct 26, 2012 at 4:43 AM, Ben Mabey <b...@benmabey.com> wrote: > On 10/25/12 6:24 PM, Jason Bennett wrote: > >> >> Let's say I have a set of thread-first calls: >> >> (-> url >> a >> b >> c >> d >> e) >> >> And let's say that I need to process and save the result of function b as >> a second parameter to function e (function b returns a file, and function e >> needs the extention of that file). How would I drop a let into the middle >> of the thread calls without making a large mess? The only suggestion I've >> gotten so far is to move calls A and B into a let before the thread-first >> so I can process their return values. >> >> jason >> > > Pallet's thread-exp library has a let-> macro that would do the trick: > > https://github.com/pallet/**thread-expr/blob/develop/src/** > pallet/thread_expr.clj#L100-**106<https://github.com/pallet/thread-expr/blob/develop/src/pallet/thread_expr.clj#L100-106> > > I love the thread-expr library but when I spoke with Hugo Duncan at > Clojure West he said that pallet's use of it was largely being replaced by > monads. > > -Ben > > > -- > 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+unsubscribe@**googlegroups.com<clojure%2bunsubscr...@googlegroups.com> > For more options, visit this group at > http://groups.google.com/**group/clojure?hl=en<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