`->` inserts its first argument into the second position of the next 
argument, and so on, so
(-> []
 (conj 1)
 (conj 2))

Turns into
(conj (conj [] 1) 2)

`->>` inserts its first argument into the LAST position of the next 
argument, and so on, so
(->> 1
 (conj [2])
 (conj [3]))
 

Turns into 
(conj [3] (conj [2] 1))

I guess it is "bottom to top," in a way, but I always thought that was kind 
of an artifact of the argument (re-)ordering.



On Saturday, August 30, 2014 12:19:31 PM UTC-4, g vim wrote:
>
> On 30/08/2014 17:04, Alexey Kachayev wrote: 
> > Thread-first macro ->will insert list-of-listsas first argument for map, 
> > which is definitely not what you expect. Use threading-last ->>instead. 
> > 
>
> I've never quite understood the distinction other than -> does 
> everything top to bottom and ->> does the reverse. From what you're 
> saying the choice also affects which position the argument is inserted? 
> If so this presents a complication in that threading through several 
> functions may require the argument to be inserted in different positions? 
>
> gvim 
>

-- 
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/d/optout.

Reply via email to