我目前正在實施Clojure中的不同的語言(Shen)。./ Clojure中(合格標誌?)
沉具有符號「./」,但在Clojure中,這是前誤差的評價,因而結果解釋。 我不需要在編譯這個函數到Clojure代碼的宏裏面的「./」。
有沒有辦法忽略這個? 我認爲它被解釋爲一個合格的符號,但沒有名稱,因爲用/或xyz /替換它會得到相同的錯誤消息。
我目前的宏觀很簡單,只要
(defmacro kl/trap-error [x [y z r]] `(try ~x (catch Exception '~z ~r)))
但是,當我跟沉代碼中調用它會發生以下情況:
kl=> (trap-error (/ 1 0) (./ E (error-to-string E)
RuntimeException Invalid token: ./ clojure.lang.Util.runtimeException (Util.java:156)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: E in this context, compiling:(NO_SOURCE_PATH:0)
CompilerException java.lang.RuntimeException: Unable to resolve symbol: E in this context, compiling:(NO_SOURCE_PATH:89)
我希望有人能幫助我與此有關。
在此先感謝。
在CL你可以使用| ./ |,我不知道它是否適合Clojure的。 – Daimrod 2012-01-08 17:34:07
據我所知,你需要一個自定義閱讀器才能在Clojure中做到這一點,但我不確定。 – danlei 2012-01-08 18:00:18
@danlei:但據我所知Clojure中沒有一個標準的方式來定義一個宏讀者,你有[亂砍位(http://briancarper.net/blog/449/clojure-reader-macros ),並沒有真正感激。 – Daimrod 2012-01-08 21:00:32