diff options
-rw-r--r-- | src/clojure/contrib/def.clj | 9 |
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))) |