3

タイトル通り、もし私が

(read-string (slurp "somefile"))

これは、ファイル内の最初のオブジェクトのみを提供します。つまり、「somefile」が以下の場合:

(a obj) (b obj)

次に、結果として (obj) のみを取得します。

このように、すべてのオブジェクトのリストを取得するにはどうすればよいですか?

((a obj) (b obj))

ありがとう。

4

2 に答える 2

10
(defn read-all
  [input]
  (let [eof (Object.)]
    (take-while #(not= % eof) (repeatedly #(read input false eof)))))
于 2011-07-27T07:09:56.380 に答える
5

私は通常、リストで何かをラップしますが、

(read-string (str \( (slurp "somefile")  \)))
于 2011-07-27T07:28:10.970 に答える