重现
λ clj -Srepro -M -r
Clojure 1.10.3
user=> (read-line)
Hello, world!
"Hello, world!"
user=> (clojure.core.server/io-prepl)
(read-line)
{:tag :ret, :val "\"\"", :ns "user", :ms 2, :form "(read-line)"}
注意,在使用 io-prepl 时,(read-line) 将立即返回,而不等待用户输入,并返回空字符串。
在 clojure.core.server/prepl 中的 read+string 后调用 clojure.main/skip-if-eol 或 clojure.main/skip-whitespace 似乎可以解决问题,但对我来说这依然不清楚原因。