我想創建一個可以讀取文件的Clojure宏,當文件讀取成功時應該關閉流。Clojure宏讀取文件
(import '(java.io FileReader File))
(defmacro read([x y]
`(let ~x
(try ~y
(. x close)
(catch Exception e# e#)))))
這樣調用,
(read [stream (java.io.FileReader (java.io.File "somefile.txt"))] (. stream read)))
導致此錯誤
java.lang.Exception: No such var: user/x (NO_SOURCE_FILE:8)
沒有人有任何建議,謝謝。
你能提供更多關於你所得到的錯誤信息的信息嗎?它是運行時錯誤還是編譯時間? – 2012-01-06 12:08:24
@PieterBreed java.lang.Exception:沒有這樣的var:user/x(NO_SOURCE_FILE:8) – Silversnail 2012-01-06 13:37:20
在宏的第4行,「x」不是沒有引號的。這仍然有很多錯誤... – 2012-01-06 14:20:10