diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/boot.clj | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/boot.clj b/src/boot.clj index 410a9cf9..589bb177 100644 --- a/src/boot.clj +++ b/src/boot.clj @@ -443,16 +443,17 @@ (let [s (seq coll)] (if s (if (instance? clojure.lang.IReduce s) - (. s (reduce f)) + (. #^clojure.lang.IReduce s (reduce f)) (reduce f (first s) (rest s))) (f)))) ([f val coll] - (let [s (seq coll)] - (if s - (if (instance? clojure.lang.IReduce s) - (. s (reduce f val)) - (recur f (f val (first s)) (rest s))) - val)))) + (let [s (seq coll)] + (when (instance? clojure.lang.IReduce s) + (. #^clojure.lang.IReduce s (reduce f val))) + (loop [f f val val s s] + (if s + (recur f (f val (first s)) (rest s)) + val))))) (defn reverse "Returns a seq of the items in coll in reverse order. Not lazy." |