重现
λ 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似乎可以解决这个问题,但我承认这对我来说并不清楚。