summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
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))))