簡體   English   中英

為什么clojurescript宏不能用clojurescript寫?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM