将多个形式串连成一个表达式。
如果只有一个参数 x 和一个形式 form ,那么将 x 作为最后一项(item),插入到 form 当中,如果 form 不是一个列表,那么将 form 包裹到一个列表里面。[译注:举个例子, (->> a-map :key) 会展开成 (:key a-map) ,而不是 :key a-map 。]
如果有多于一个形式,那么将第一个形式作为最后一项插入到第二个形式中,以此类推。
; 计算小于 10 的整数的平方之和
user=> (->> (range)
            (map #(* % %))
            (filter even?)
            (take 10)
            (reduce +))
1140
user=> (use '[clojure.walk :only [macroexpand-all]])
nil
user=> (macroexpand-all '(->> (range)
                              (map #(* % %))
                              (filter even?)
                              (take 10)
                              (reduce +)))
(reduce + (take 10 (filter even? (map (fn* [p1__3#] (* p1__3# p1__3#)) (range)))))