2009-02-03 54 views
5

我想在我的Clojure程序中獲取控制檯輸入,但是當它到達程序的那部分時,它給了我這個錯誤。Clojure讀線功能問題

Exception in thread "main" java.lang.ClassCastException: 
clojure.lang.LineNumberingPushbackReader cannot be cast to java.io.BufferedReader 

'讀'功能的作品,但它不是我所需要的。這是我正在使用的代碼。

(defn prompt-read [prompt] 
    (print (format "%s: " prompt)) 
    (flush) 
    (read-line)) 

編輯:

這明明就是我使用的版本。這是編程Clojure的當前示例代碼中包含的版本,我將測試當前的發行版本並查看是否是問題所在。

+0

Just fyi,在http://github.com/stuarthalloway/programming-clojure/tree/master Halloway提供了一個clojure和clojure-contrib的副本,這是他以當前形式使用該書的版本。 – Runevault 2009-02-04 22:29:12

+0

是的,那些是失敗的。 – Rayne 2009-02-05 02:12:25

回答

3

嗯,它似乎爲我工作。你使用的是什麼版本的Clojure,你打算怎麼打電話提示閱讀?這是我回來的東西(這裏是goo是我的迴應):

user=> (defn prompt-read [prompt] 
(print (format "%s: " prompt)) 
(flush) 
(read-line)) 
#'user/prompt-read 
user=> (prompt-read "foo") 
foo: goo 
"goo" 
1

讀線問題是一個已知的錯誤。它是固定的。更新你的Clojure版本。