From 8ac69ede24a0c481f312008dbca8bee2bc6e1e73 Mon Sep 17 00:00:00 2001 From: Stuart Halloway Date: Sun, 30 May 2010 13:53:36 -0400 Subject: abstraction fix to split: preserve vector nature of host return value #359 Signed-off-by: Stuart Halloway --- src/clj/clojure/string.clj | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') 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." -- cgit v1.2.3-70-g09d2