diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-12-17 12:37:33 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-12-17 12:37:33 +0000 |
commit | b5fc3bdc785787e20e26bd47b27aec0aa9c38385 (patch) | |
tree | aa88a6c3dcf7aa641c3082e2347710cf866d360c /src | |
parent | 50fef0a99e560726fdc85c386f32869246e26ce9 (diff) |
added create-struct
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))) |