Dear list members,

It seems that core.line-seq contains a small bug w.r.t. laziness. The
side effect (. rdr (readLine)) occurs before lazy-seq, so the sequence
created is not fully delayed. Fix attached.

Cheers,
Toralf

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

diff --git a/src/clj/clojure/core.clj b/src/clj/clojure/core.clj
index 1b691ba..aac9571 100644
--- a/src/clj/clojure/core.clj
+++ b/src/clj/clojure/core.clj
@@ -1669,8 +1669,8 @@
   "Returns the lines of text from rdr as a lazy sequence of strings.
   rdr must implement java.io.BufferedReader."
   [#^java.io.BufferedReader rdr]
-    (let [line  (. rdr (readLine))]
-      (lazy-seq
+    (lazy-seq
+      (let [line  (. rdr (readLine))]
        (when line
         (cons line (line-seq rdr))))))
 

Reply via email to