On Jan 10, 12:22 am, wubbie <sunj...@gmail.com> wrote:
> How can you add line numbers for each line printed from the file.
> Without line number, I have this:
>
> (with-open [rdr (reader "executors.clj")]
>   (filter #(println %) (line-seq rdr)))

I don't believe there's a function to do this, but it's easy enough to
add one:

(defn zip-index [coll]
  (map vector coll (iterate inc 0)))

This will create a sequence of items paired with their indexes:

=> (zip-index [:a :b :c])
([:a 0] [:b 1] [:c 2])

Next, instead of filter, you probably want doseq. The filter function
filters a collection according to a predicate. The doseq function
applies a function with side effects (such as println) to each item in
a collection.

(with-open [rdr (reader "executors.clj")]
  (doseq [[line index] (zip-index (line-seq rdr))]
    (.println System/out (str (inc index) " " line))))

- James
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to