【发布时间】:2013-10-10 15:13:52
【问题描述】:
我正在尝试逐行读取文件并将新字符串连接到每行的末尾。为了测试我已经这样做了:
(defn read-file
[filename]
(with-open [rdr (clojure.java.io/reader filename)]
(doall (line-seq rdr))))
(apply str ["asdfasdf" (doall (take 1 (read-file filename)))])
如果我只是在 repl 中评估 (take 1 (read-file filename)),我会得到文件的第一行。但是,当我尝试评估我在上面所做的事情时,我得到了"asdfasdfclojure.lang.LazySeq@4be5d1db"。
谁能解释如何强制评估 take 以使其不返回惰性序列?
【问题讨论】:
标签: clojure eval lazy-evaluation take