我是 Clojure 的新手,正在尝试通过重新绑定将输出重定向到文件*out*
。在一个简单的情况下,它工作得很好:
(binding [*out* (new java.io.FileWriter "test.txt")]
(println "Hi"))
这符合我的预期,将“Hi”打印到文件 test.txt。但是,如果我引入一个for
循环,事情就会出错:
(binding [*out* (new java.io.FileWriter "test.txt")]
(for [x [1 2]]
(println "Hi" x)))
这一次,所有的输出都到标准输出,文件是空的。这里发生了什么?
我正在使用 Leiningen,如果这有什么不同的话:
Leiningen 2.0.0 on Java 1.7.0_13 Java HotSpot(TM) 64-Bit Server VM