aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/clojure/contrib/def.clj9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/clojure/contrib/def.clj b/src/clojure/contrib/def.clj
index 2ad789e0..cc3eef75 100644
--- a/src/clojure/contrib/def.clj
+++ b/src/clojure/contrib/def.clj
@@ -136,3 +136,12 @@ making private definitions more succinct."}
[~@pos & options#]
(let [~de-map (apply hash-map options#)]
~@body))))
+
+; defn-memo by Chouser:
+(defmacro defn-memo
+ "Just like defn, but memoizes the function using clojure.core/memoize"
+ [fn-name & defn-stuff]
+ `(do
+ (defn ~fn-name ~@defn-stuff)
+ (alter-var-root (var ~fn-name) memoize)
+ (var ~fn-name)))