我正在 Clojure 中编写一个Brainf***解释器。我想通过一个程序来使用标准输入。但是,我仍然需要稍后从标准输入读取用户输入。
目前,我正在这样做:
$ cat sample_programs/hello_world.bf | lein trampoline run
我的 Clojure 代码只读取第一行,使用read-line
:
(defn -main
"Read a BF program from stdin and evaluate it."
[]
;; FIXME: only reads the first line from stdin
(eval-program (read-line)))
如何读取我输入的文件中的所有行?*in*
似乎是 的一个实例java.io.Reader
,但它只提供.read
(一个字符)、.readLine
(一行)和read(char[] cbuf, int off, int len)
(似乎非常低级)。