我在clojure中逐行读取文件。当我将split函数应用于一行时,我得到的是nil而不是vector。这是代码:
(use 'clojure.java.io)
(with-open [rdr (reader "somefile")]
(doseq [line (line-seq rdr)]
(split line #"\s+")))
感谢
答案 0 :(得分:3)
user> (doseq [n (range 10000)] (* n n))
nil
doseq
只返回零。如果您需要操作结果,则应使用for
或map
代替。您可能需要使用doall
以确保在阅读器仍处于打开状态时消耗输入。
user> (take 10 (for [n (range 10000)] (* n n)))
(0 1 4 9 16 25 36 49 64 81)