5
我在Clojure 1.2中创建了一个处理我自己的Java类的协议,并且具有对通用java.lang.Object的默认处理。代码看起来是这样的:在Clojure中为自定义Java类,地图和序列扩展协议
(extend-protocol PMyProtocol
my.java.ClassName
(protocol-function [c]
"My Java class result")
java.lang.Object
(protocol-function [c]
"Default object result"))
我应该如何扩展,以有标准Clojure的数据结构(尤其是地图,矢量和序列)特殊处理?
要明确命名它们以防止需要不同的处理:'c.l.IPersistentMap','c.l.IPersistentVector','c.l.IPersistentSet'(有一些系统在里面......)和序列'c.l.ISeq'。 – kotarak 2010-08-02 15:07:23
谢谢Michal和kotarak!我最终使用了clojure.lang.IPersistentMap和clojure.lang.ISeq,它们运行良好。 – mikera 2010-08-02 20:50:43