Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在clojurescript中定义defprotocol宏?_Clojure_Clojurescript - Fatal编程技术网

如何在clojurescript中定义defprotocol宏?

如何在clojurescript中定义defprotocol宏?,clojure,clojurescript,Clojure,Clojurescript,我试图找出定义defprotocol宏的源代码在哪里 在cljs.core源代码中: 第155行突然弹出defprotocol宏(以及-invoke函数)。在哪里可以找到它的实现位置?ClojureScript中的所有宏都必须作为Clojure实现 defprotocol在该文件的第796行实现: 请注意,此文件是Clojure文件,而不是ClojureScript文件。谢谢!顺便提一下你知道js*宏是如何工作的吗?我在cljs.core代码中都看到了,但是没有定义。js*不是宏,而是一种特

我试图找出定义
defprotocol
宏的源代码在哪里

cljs.core
源代码中:


第155行突然弹出
defprotocol
宏(以及
-invoke
函数)。在哪里可以找到它的实现位置?

ClojureScript中的所有宏都必须作为Clojure实现

defprotocol
在该文件的第796行实现:


请注意,此文件是Clojure文件,而不是ClojureScript文件。

谢谢!顺便提一下你知道js*宏是如何工作的吗?我在cljs.core代码中都看到了,但是没有定义。js*不是宏,而是一种特殊的形式。它用于允许ClojureScript在需要时使用Javascript。Chris Houser在文章中对此进行了一些讨论。实现js*的代码在以下文件中:您好,我写了一篇文章来解释clojurescript如何在javascript中编译defprotocol,这可能会对您有所帮助:)