On Thu, Jul 9, 2009 at 16:43, eyeris<[email protected]> wrote:
>
> I ran the code you pasted here. It didn't throw an IOException for me.
> I am running 1.0.
I suspect that You're Doing it Wrong.
You'll see the exception only if you actually try to evaluate the lazy
sequence returned by byte-seq.
(import [java.io InputStream FileInputStream])
(defn byte-seq
[#^java.io.InputStream stream]
(lazy-seq
(let [b (. stream (read))]
(if (>= b 0)
(cons b (byte-seq stream))))))
(defn most []
(with-open [st (FileInputStream. "/home/smithma/.bashrc")]
(drop 5 (byte-seq st))))
(def x (most)) ;; this is OK, it just binds x to the lazy seq
returned by (most)
(first x) ;; not ok, as it tries to get the first element of x, which dies
;; since the file we're reading from is already closed.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---