2009-02-03 29 views
5

Tôi đang cố gắng để có được đầu vào giao diện điều khiển trong chương trình Clojure của tôi, nhưng khi nó mang lại cho tôi lỗi này khi nó đến phần đó của chương trình.Clojure vấn đề chức năng đọc dòng

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

chức năng 'đọc' hoạt động, nhưng đó không phải là những gì tôi cần. Đây là mã tôi đang sử dụng.

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

EDIT:

Nó rõ ràng chỉ là phiên bản tôi đang sử dụng. Đó là phiên bản có trong mã mẫu hiện tại của Lập trình Clojure, tôi sẽ kiểm tra phiên bản phát hành hiện tại và xem đó có phải là vấn đề không.

+0

Chỉ cần fyi, tại http://github.com/stuarthalloway/programming-clojure/tree/master Halloway bao gồm một bản sao của clojure và clojure-contrib là các phiên bản ông sử dụng cho cuốn sách ở dạng hiện tại của nó. – Runevault

+0

Vâng, đó là những người thất bại. – Rayne

Trả lời

3

Hmm, có vẻ như nó phù hợp với tôi. Bạn đang sử dụng phiên bản Clojure nào và bạn đang gọi nhắc đọc như thế nào? Dưới đây là những gì tôi đang quay lại (ở đây goo là câu trả lời của tôi):

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

Vâng thưa ông, đó là vấn đề! Cảm ơn! – Rayne

+1

Tất nhiên. Clojure đã thay đổi rất nhiều gần đây nên tôi đã gặp rất nhiều vấn đề tương tự giữa bản beta đầu tiên của cuốn sách và bản beta hiện tại (nhưng dường như điều này sẽ sớm bình tĩnh lại một chút). –

1

Sự cố đọc là lỗi đã biết. Nó đã được sửa. Cập nhật phiên bản Clojure của bạn.

Các vấn đề liên quan