雖然涉足Clojure,但我寫了一個非常基本的程序來回應用戶輸入的任何內容。然而,它不會以我認爲是自然的方式運行。下面的代碼:Clojure - 副作用發生故障
(defn goo []
(print "echo> ")
(def resp (read-line))
(print resp)
)
我希望代碼可以這樣運行了(對我來說在foo
作爲輸入到read-line
打字):
user=> (goo)
echo> foo
foonil
而是回聲和讀線切換:
user=> (goo)
foo
echo> foonil
爲什麼會發生這種情況?我錯過了一個微妙的東西嗎?
編輯:從喬的回答,更新的正確的解決辦法是:
(defn goo []
(print "echo> ")
(flush)
(def resp (read-line))
(print resp)
(flush)
)
此外,沖洗是沒有必要的,如果你使用println
而不是print
。
這做到了!打印完成後添加(刷新)。感謝您及時的回覆! – 2008-12-23 03:10:02