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

in clojure, split function returns nil instead of nonempty vector

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

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

谢谢


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

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

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