summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorStuart Halloway <stu@thinkrelevance.com>2010-05-30 13:53:36 -0400
committerStuart Halloway <stu@thinkrelevance.com>2010-06-03 21:20:59 -0400
commit8ac69ede24a0c481f312008dbca8bee2bc6e1e73 (patch)
treede5828a915782b83e2e6a219dabcefb9c7c1c78d /src
parent2c9503a08aa25cfbc3744b8ea575f10dc432f0f2 (diff)
abstraction fix to split: preserve vector nature of host return value #359
Signed-off-by: Stuart Halloway <stu@thinkrelevance.com>
Diffstat (limited to 'src')
-rw-r--r--src/clj/clojure/string.clj11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/clj/clojure/string.clj b/src/clj/clojure/string.clj
index e1ef3796..a4e77415 100644
--- a/src/clj/clojure/string.clj
+++ b/src/clj/clojure/string.clj
@@ -10,7 +10,8 @@
:author "Stuart Sierra"}
clojure.string
(:refer-clojure :exclude (replace reverse))
- (:import (java.util.regex Pattern)))
+ (:import (java.util.regex Pattern)
+ clojure.lang.LazilyPersistentVector))
(defn ^String reverse
"Returns s with its characters reversed."
@@ -123,10 +124,12 @@
(defn split
"Splits string on a regular expression. Optional argument limit is
- the maximum number of splits."
+ the maximum number of splits. Not lazy. Returns vector of the splits."
{:added "1.2"}
- ([^Pattern re ^String s] (seq (.split re s)))
- ([^Pattern re limit ^String s] (seq (.split re s limit))))
+ ([^String s ^Pattern re]
+ (LazilyPersistentVector/createOwning (.split re s)))
+ ([ ^String s ^Pattern re limit]
+ (LazilyPersistentVector/createOwning (.split re s limit))))
(defn ^String trim
"Removes whitespace from both ends of string."