diff options
author | Rich Hickey <richhickey@gmail.com> | 2008-11-13 15:55:39 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2008-11-13 15:55:39 +0000 |
commit | 0a18d93657e38c691a671fb37e251728f77ee331 (patch) | |
tree | a341c765667d48e16db1cbc65b29a9fd195c6823 | |
parent | e36121e55e2c09beeaa90ca3f2fc822f24c2adc8 (diff) |
made (keyword :akeyword) and (symbol 'asymbol) == identity
-rw-r--r-- | src/clj/clojure/core.clj | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj index 1e15831d..c0174c05 100644 --- a/src/clj/clojure/core.clj +++ b/src/clj/clojure/core.clj @@ -321,15 +321,24 @@ (str sb))) (new StringBuilder #^String (str x)) ys))) + +(defn symbol? + "Return true if x is a Symbol" + [x] (instance? clojure.lang.Symbol x)) + +(defn keyword? + "Return true if x is a Keyword" + [x] (instance? clojure.lang.Keyword x)) + (defn symbol "Returns a Symbol with the given namespace and name." - ([name] (. clojure.lang.Symbol (intern name))) + ([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." - ([name] (. clojure.lang.Keyword (intern nil name))) + ([name] (if (keyword? name) name (. clojure.lang.Keyword (intern nil name)))) ([ns name] (. clojure.lang.Keyword (intern ns name)))) (defn gensym @@ -2177,13 +2186,6 @@ (recur (dec n) (rest xs)) xs))) -(defn symbol? - "Return true if x is a Symbol" - [x] (instance? clojure.lang.Symbol x)) - -(defn keyword? - "Return true if x is a Keyword" - [x] (instance? clojure.lang.Keyword x)) ;redefine let and loop with destructuring (defn destructure [bindings] |