summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-12-17 12:37:33 +0000
committerRich Hickey <richhickey@gmail.com>2007-12-17 12:37:33 +0000
commitb5fc3bdc785787e20e26bd47b27aec0aa9c38385 (patch)
treeaa88a6c3dcf7aa641c3082e2347710cf866d360c /src
parent50fef0a99e560726fdc85c386f32869246e26ce9 (diff)
added create-struct
Diffstat (limited to 'src')
-rw-r--r--src/boot.clj7
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)))