在clojure中,split函数返回nil而不是非空向量

时间:2014-02-09 18:43:51

标签: string clojure split

我在clojure中逐行读取文件。当我将split函数应用于一行时,我得到的是nil而不是vector。这是代码:

(use 'clojure.java.io)
(with-open [rdr (reader "somefile")]
  (doseq [line (line-seq rdr)]
    (split line #"\s+")))

感谢

1 个答案:

答案 0 :(得分:3)

user> (doseq [n (range 10000)] (* n n))
nil

doseq只返回零。如果您需要操作结果,则应使用formap代替。您可能需要使用doall以确保在阅读器仍处于打开状态时消耗输入。

user> (take 10 (for [n (range 10000)] (* n n)))
(0 1 4 9 16 25 36 49 64 81)