我有一些带有嵌套懒惰序列的结构,这些序列从文件中读取。在测试时,我希望能够将它们包装在doall的递归版本中,以确保在关闭文件之前从文件中提取所有数据。

最佳答案

(defn doall-recur [s]
  (if (seq? s)
    (doall (map doall-recur
                s))
    s))

(use 'clojure.contrib.duck-streams)
(with-open [r1 (reader "test1.txt")
            r2 (reader "test2.txt")]
  (doall-recur (list (line-seq r2) (line-seq r1))))

输出:
(("This is test2.txt" "") ("This is test1.txt" ""))

关于clojure - Clojure中的递归(doall),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1217131/

10-12 17:26