aboutsummaryrefslogtreecommitdiff
path: root/src/clojure
diff options
context:
space:
mode:
Diffstat (limited to 'src/clojure')
-rw-r--r--src/clojure/contrib/walk.clj6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/clojure/contrib/walk.clj b/src/clojure/contrib/walk.clj
index 6a6e06e2..5c1e9a3e 100644
--- a/src/clojure/contrib/walk.clj
+++ b/src/clojure/contrib/walk.clj
@@ -114,3 +114,9 @@
replacement at the leaves of the tree first."
[smap form]
(postwalk (fn [x] (if (contains? smap x) (smap x) x)) form))
+
+(defn macroexpand-all
+ "Recursively performs all possible macroexpansions in form."
+ [form]
+ (prewalk (fn [x] (if (list? x) (macroexpand x) x)) form))
+