summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2008-08-28 18:17:22 +0000
committerRich Hickey <richhickey@gmail.com>2008-08-28 18:17:22 +0000
commit4b58241b944a261e708288bdaa520f549e0e259c (patch)
tree0a39b21af7be9e4f6e113899d7bc61fa199790a9 /src
parent0ee1610174de367cfd4f7087a3a0ae982bc40c6d (diff)
added defonce
Diffstat (limited to 'src')
-rw-r--r--src/clj/clojure/boot.clj8
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))))