diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-08-28 18:17:22 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-08-28 18:17:22 +0000 |
commit | 4b58241b944a261e708288bdaa520f549e0e259c (patch) | |
tree | 0a39b21af7be9e4f6e113899d7bc61fa199790a9 /src | |
parent | 0ee1610174de367cfd4f7087a3a0ae982bc40c6d (diff) |
added defonce
Diffstat (limited to 'src')
-rw-r--r-- | src/clj/clojure/boot.clj | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/clj/clojure/boot.clj b/src/clj/clojure/boot.clj index 0fc27f4e..4a4d176a 100644 --- a/src/clj/clojure/boot.clj +++ b/src/clj/clojure/boot.clj @@ -2984,3 +2984,11 @@ (in-ns '~name) (when-not existed# (clojure/refer '~'clojure)))) + +(defmacro defonce + "defs name to have the root value of the expr iff the named var has no root value, + else expr is unevaluated" + [name expr] + `(let [v# (def ~name)] + (when-not (.hasRoot v#) + (def ~name ~expr)))) |