我正在尝试逐行读取文件并将新字符串连接到每行的末尾。为了测试我已经这样做了:
(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
以使其不返回惰性序列?