Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (require '[clojure.java.io :as io])
- (defn dropping-transform [fn coll]
- (loop [coll coll]
- (when-let [[first & rest] (seq coll)]
- (let [val (fn first)]
- (if (nil? val)
- (recur rest)
- (cons val rest))))))
- (def inputs (atom ["/home/xgp/tmp/1.clj" "/home/xgp/tmp/2.clj"]))
- (defn interested-line? [line]
- true)
- (defn read-next-line [inputs]
- (dropping-transform (fn [input]
- (let [reader (if (string? input)
- (io/reader input)
- (first input))
- lines (dropping-transform (fn [line]
- (when (interested-line? line)
- line))
- (line-seq reader))]
- (if (seq lines)
- [reader lines]
- (do (.close reader)
- nil))))
- inputs))
- (loop []
- (when-let [v (seq (swap! inputs read-next-line))]
- (let [[[_ [line]]] v]
- (println line)
- (recur))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement