diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/boot.clj | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/boot.clj b/src/boot.clj index 6fd4678b..2495a766 100644 --- a/src/boot.clj +++ b/src/boot.clj @@ -901,9 +901,12 @@ (macroexpand ex) ex))) -(defmacro defstruct [name & keys] - `(def ~name (. clojure.lang.PersistentStructMap (createSlotMap (list ~@keys))))) +(defn create-struct [& keys] + (. clojure.lang.PersistentStructMap (createSlotMap keys))) +(defmacro defstruct [name & keys] + `(def ~name (create-struct ~@keys))) + (defn struct [s & inits] (. clojure.lang.PersistentStructMap (create s inits))) |