所有clojure代码都在java代理中工作吗?
我想知道是否有任何clojure代码或宏在嵌入java代码的clojure代理时不起作用,例如:所有clojure代码都在java代理中工作吗?,java,clojure,Java,Clojure,我想知道是否有任何clojure代码或宏在嵌入java代码的clojure代理时不起作用,例如: (proxy [Some Java Interface] [] (some Java Method [args] ... Clojure code ... ) ) 或者,我只能在代理中嵌入对Java函数的调用吗?任何Clojure代码都应该在代理中工作 在幕后,Clojure函数被编译成Java对象,而调用Clojure函数在技术上就是Java方法调用本身。宏扩展在代理服务器上
(proxy [Some Java Interface] []
(some Java Method [args]
...
Clojure code
...
)
)
或者,我只能在代理中嵌入对Java函数的调用吗?任何Clojure代码都应该在代理中工作 在幕后,Clojure函数被编译成Java对象,而调用Clojure函数在技术上就是Java方法调用本身。宏扩展在代理服务器上仍能正常工作。读卡器宏均正常工作等
user> (defmacro foo [] "FOO")
#'user/foo
user> (.toString (proxy [Object] []
(toString []
(str (foo) \space (reduce + (range 5))))))
"FOO 10"