【发布时间】:2008-12-23 03:02:10
【问题描述】:
在涉足 Clojure 时,我编写了一个非常基本的程序来回显用户在其中输入的任何内容。然而,它并没有以我认为自然的方式运行。代码如下:
(defn goo []
(print "echo> ")
(def resp (read-line))
(print resp)
)
我希望代码像这样运行(我输入foo 作为read-line 的输入):
user=> (goo)
echo> foo
foonil
但是,echo 和 read-line 被切换了:
user=> (goo)
foo
echo> foonil
为什么会这样?有没有我遗漏的微妙之处?
编辑:根据乔的回答,更新后的正确解决方案是:
(defn goo []
(print "echo> ")
(flush)
(def resp (read-line))
(print resp)
(flush)
)
此外,如果您使用 println 而不是 print,则不需要刷新。
【问题讨论】:
标签: clojure