store/[org.clojure/clojure "1.8.0"] clj::clojure.core/->>

Official Documentation

Add notes
Arities
==================================================
   [x & forms]

Docstring
==================================================
  Threads the expr through the forms. Inserts x as the
  last item in the first 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.

Source

(defmacro ->>
  "Threads the expr through the forms. Inserts x as the
  last item in the first 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."
  {:added "1.1"}
  [x & forms]
  (loop [x x, forms forms]
    (if forms
      (let [form (first forms)
            threaded (if (seq? form)
              (with-meta `(~(first form) ~@(next form)  ~x) (meta form))
              (list form x))]
        (recur threaded (next forms)))
      x)))

Example 1

Edit
(->>
 (range 10)
 (map inc)     ; Macro outputs here: (map inc (range 10)
 (filter odd?) ; And here: (filter odd? (map inc (range 10))
 (into []))    ; And finally: (into [] (filter odd? (map inc (range 10)))
;=> [1 3 5 7 9]

Uses on crossclj