summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2010-02-09 17:31:33 -0500
committerRich Hickey <richhickey@gmail.com>2010-02-09 17:31:33 -0500
commit060b311c380312caef727dfbf4ff736e0b2a2857 (patch)
tree0a13137be1c22853cce29e8c6380352f3be259e6
parent742619e583400400e69cd46ab9e9536c10afb738 (diff)
got rid of reflection in keyword
-rw-r--r--src/clj/clojure/core.clj16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index f41c0765..3a315e63 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -423,13 +423,6 @@
([name] (if (symbol? name) name (clojure.lang.Symbol/intern name)))
([ns name] (clojure.lang.Symbol/intern ns name)))
-(defn keyword
- "Returns a Keyword with the given namespace and name. Do not use :
- in the keyword strings, it will be added automatically."
- {:tag clojure.lang.Keyword}
- ([name] (if (keyword? name) name (clojure.lang.Keyword/intern name)))
- ([ns name] (clojure.lang.Keyword/intern ns name)))
-
(defn gensym
"Returns a new symbol with a unique name. If a prefix string is
supplied, the name is prefix# where # is some unique number. If
@@ -451,6 +444,15 @@
"cond requires an even number of forms")))
(cons 'clojure.core/cond (next (next clauses))))))
+(defn keyword
+ "Returns a Keyword with the given namespace and name. Do not use :
+ in the keyword strings, it will be added automatically."
+ {:tag clojure.lang.Keyword}
+ ([name] (cond (keyword? name) name
+ (symbol? name) (clojure.lang.Keyword/intern #^clojure.lang.Symbol name)
+ (string? name) (clojure.lang.Keyword/intern #^String name)))
+ ([ns name] (clojure.lang.Keyword/intern ns name)))
+
(defn spread
{:private true}
[arglist]