2017-03-02 84 views
1

在脚本仍在运行的情况下,如何将输出打印到REPL中?我注意到它将所有内容都存储到缓冲区,然后在完成代码后打印。在脚本仍在运行到REPL时进行Clojure打印

(defn -main 
    [x] 
    (when (pos? x) 
    (println x) 
    (Thread/sleep 10000) 
    (recur (dec x)))) 
(-main 10) 
+4

我认为你需要['flush'(https://clojuredocs.org/clojure.core/flush) 。 –

回答

0

Java(&因此Clojure)使用缓冲输出。如果你想在紧密循环的中间打印,您需要flush

(println x) 
(flush) 
+0

感谢这是正确的,我以前使用过这个,但我试图加载文件到REPL中,并没有实时吐出输出。 – Stixxxx