标题为“如果我做”
(read-string (slurp "somefile"))
这只会给我文件中的第一个对象,这意味着“somefile”如下所示:
(a obj) (b obj)
然后我只得到(一个obj)作为结果。
如何获取所有对象的列表,如下所示?
((a obj) (b obj))
感谢。
答案 0 :(得分:10)
(defn read-all
[input]
(let [eof (Object.)]
(take-while #(not= % eof) (repeatedly #(read input false eof)))))
答案 1 :(得分:5)
我通常将内容包装在一个列表中,
(read-string (str \( (slurp "somefile") \)))