11
我很好奇如何做一个包含自身引用的Clojure deftype,如何实现递归deftype
(deftype BinaryTree [^BinaryTree left ^BinaryTree right])
这不起作用......但是我看不出内在的原因,因为底层的Java类完全可以引用自己。
我在这里做错了什么?
Mike。
我很好奇如何做一个包含自身引用的Clojure deftype,如何实现递归deftype
(deftype BinaryTree [^BinaryTree left ^BinaryTree right])
这不起作用......但是我看不出内在的原因,因为底层的Java类完全可以引用自己。
我在这里做错了什么?
Mike。
当前^字段提示字段(与^原始提示相对)被放弃,所以在尝试放置它们时没有任何好处。这可能在未来发生变化。
但是在类型定义中的自动引用(例如,在方法体中,而不是在字段中)有些作用,但是实现有点破解。考虑到在Clojure中重写编译器的承诺,在当前的java编译器中修复自动引用的动机不大。
谢谢 - 非常有帮助的解释(虽然也很烦人,因为我真的想使用一些递归引用!) – mikera 2011-02-02 20:20:15