[英]Why clojurescript macros can't be written in clojurescript?
雖然clojure和clojurescript功能基本相同(除了明顯的差異),但宏不是。 當我想要一個clojurescript中的宏時,我必須在clojure中編寫它並且需要它與require-macros。 這是javascript的技術限制還是僅僅是設計決策? 為什么不能兩者都一樣?
來自ClojureScript: Stuart Sierra和Luker VanderHart的啟動和運行 ,第69頁:
在編譯過程中應用宏。 它們在運行時不存在。 由於ClojureScript編譯器是在Clojure中實現的,因此ClojureScript宏必須用Clojure編寫,而不是用ClojureScript編寫。 幸運的是,Clojure和ClojureScript在操作數據結構時幾乎完全相同,因此在兩種語言之間切換並不困難。
這意味着宏代碼在Clojure世界而不是在瀏覽器中執行,所以它必須用簡單的Clojure編寫。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.