我想在我的Clojure定义类型中实现transient和persistent!。据我所知,这意味着使用另一个定义类型TransientMyThing来实现必要的方法。到目前为止还好,但这两个类需要相互了解才能返回彼此的实例。
我想我可以通过向前声明Clojure函数make-瞬态和make-persistent,然后定义deftype (通过引用该函数),然后使用现有的类型实现这些函数,但这对我来说似乎相当粗略。有没有更好的选择?
编辑:这是工作,但它仍然是粗俗的。
发布于 2014-10-07 11:41:56
在Clojure 1.3和更高版本中,一种稍微简单一些的解决方案是依赖Clojure为定义类型->transient和->persistent!创建的构造函数。因为这些是函数,而不是宏,所以你可以向前声明它们。然后,您可以使用它们,而不是您自己的make-瞬态和make-persistent,并且您不必自己实现它们。
https://stackoverflow.com/questions/6400070
复制相似问题