所有clojure代码都在java代理中工作吗?

所有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方法调用本身。宏扩展在代理服务器上

我想知道是否有任何clojure代码或宏在嵌入java代码的clojure代理时不起作用,例如:

(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"