Skip to content

Instantly share code, notes, and snippets.

@kaosf
Created August 18, 2013 16:45
Show Gist options
  • Save kaosf/6262641 to your computer and use it in GitHub Desktop.
Save kaosf/6262641 to your computer and use it in GitHub Desktop.
Expand arrow macro on Clojure 1.5.1.
(macroexpand '(-> x (f1 y1) (f2 y2) (f3 y3)))
;-> (f3 (clojure.core/-> (clojure.core/-> x (f1 y1)) (f2 y2)) y3)
(macroexpand '(clojure.core/-> x (f1 y1)))
;-> (f1 x y1)
(macroexpand '(->> x (f1 y1) (f2 y2) (f3 y3)))
;-> (f3 y3 (clojure.core/->> (clojure.core/->> x (f1 y1)) (f2 y2)))
(macroexpand '(clojure.core/->> x (f1 y1)))
;-> (f1 y1 x)
(macroexpand '(-> x (f1 y1 z1) (f2 y2 z2) (f3 y3 z3)))
;-> (f3 (clojure.core/-> (clojure.core/-> x (f1 y1 z1)) (f2 y2 z2)) y3 z3)
(macroexpand '(clojure.core/-> x (f1 y1 z1)))
;-> (f1 x y1 z1)
(macroexpand '(->> x (f1 y1 z1) (f2 y2 z2) (f3 y3 z3)))
;-> (f3 y3 z3 (clojure.core/->> (clojure.core/->> x (f1 y1 z1)) (f2 y2 z2)))
(macroexpand '(clojure.core/->> x (f1 y1 z1)))
;-> (f1 y1 z1 x)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment