问题
As titled, If I do
(read-string (slurp "somefile"))
This will only give me the first object in the file, meaning if "somefile" is as below:
(a obj) (b obj)
Then I only get (a obj) as the result.
How do i get a list of all objects, like this?
((a obj) (b obj))
Thanks.
回答1:
(defn read-all
[input]
(let [eof (Object.)]
(take-while #(not= % eof) (repeatedly #(read input false eof)))))
回答2:
I usually wrap stuff in a list,
(read-string (str \( (slurp "somefile") \)))
来源:https://stackoverflow.com/questions/6840425/with-clojure-read-read-string-function-how-do-i-read-in-a-clj-file-to-a-list-o