summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-02-03 12:51:51 +0000
committerRich Hickey <richhickey@gmail.com>2009-02-03 12:51:51 +0000
commit04c246d900827d8e74f93c0a9cf77fcc94cf76d9 (patch)
treebfc144867284b5bdd1ad0ea1140d96e63afd60ed
parent4bd4f231e1c5a822b918a5c80a640aa98b0f48ff (diff)
[lazy] added sequence?
-rw-r--r--src/clj/clojure/core.clj11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 217010db..fcf08c5f 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -112,6 +112,11 @@
(def
#^{:arglists '([x])
+ :doc "Return true if x implements Sequence, true of ISeqs and LazySeqs"}
+ sequence? (fn sequence? [x] (instance? clojure.lang.Sequence x)))
+
+(def
+ #^{:arglists '([x])
:doc "Return true if x is a String"}
string? (fn string? [x] (instance? String x)))
@@ -129,7 +134,7 @@
#^{:private true}
sigs
(fn [fdecl]
- (if (seq? (first fdecl))
+ (if (sequence? (first fdecl))
(loop [ret [] fdecl fdecl]
(if fdecl
(recur (conj ret (first (first fdecl))) (rest fdecl))
@@ -996,7 +1001,7 @@
second item in the first form, making a list of it if it is not a
list already. If there are more forms, inserts the first form as the
second item in second form, etc."
- ([x form] (if (seq? form)
+ ([x form] (if (sequence? form)
`(~(first form) ~x ~@(rest form))
(list form x)))
([x form & more] `(-> (-> ~x ~form) ~@more)))
@@ -2017,7 +2022,7 @@
(let [gx (gensym)]
`(let [~gx ~x]
~@(map (fn [f]
- (if (seq? f)
+ (if (sequence? f)
`(~(first f) ~gx ~@(rest f))
`(~f ~gx)))
forms)