isl*_*lon 15 clojure clojurescript
虽然clojure和clojurescript功能基本相同(除了明显的差异),但宏不是.当我想要一个clojurescript中的宏时,我必须在clojure中编写它并且需要它与require-macros.这是javascript的技术限制还是仅仅是设计决策?为什么不能两者都一样?
Ser*_*abe 16
来自ClojureScript: Stuart Sierra和Luker VanderHart的启动和运行,第69页:
在编译过程中应用宏.它们在运行时不存在.由于ClojureScript编译器是在Clojure中实现的,因此ClojureScript宏必须用Clojure编写,而不是用ClojureScript编写.幸运的是,Clojure和ClojureScript在操作数据结构时几乎完全相同,因此在两种语言之间切换并不困难.
这意味着宏代码在Clojure世界而不是在浏览器中执行,所以它必须用简单的Clojure编写.