在脚本仍在运行到REPL时进行Clojure打印
问题描述:
在脚本仍在运行的情况下,如何将输出打印到REPL中?我注意到它将所有内容都存储到缓冲区,然后在完成代码后打印。在脚本仍在运行到REPL时进行Clojure打印
(defn -main
[x]
(when (pos? x)
(println x)
(Thread/sleep 10000)
(recur (dec x))))
(-main 10)
答
Java(&因此Clojure)使用缓冲输出。如果你想在紧密循环的中间打印,您需要flush
:
(println x)
(flush)
+0
感谢这是正确的,我以前使用过这个,但我试图加载文件到REPL中,并没有实时吐出输出。 – Stixxxx
我认为你需要['flush'(https://clojuredocs.org/clojure.core/flush) 。 –