2014-02-25 20 views
5

因此,四处寻找想要弄清楚如何在Clojure中完成ADT的问题,我遇到了旧的clojure-contrib,除了它已被替换之外,它很好,很好。好吧,没有什么大不了的,只要看看被取代的clojure-contrib的破碎图书馆目录,但在我的生活中,我无法找到defadt在新的clojure-contrib分解图书馆中迁移的地方。defadt在新的clojure contrib中去了哪里?

那么,它已经迁移到?

我一直在四处寻找http://dev.clojure.org/display/doc/Clojure+Contrib+Libraries但不能弄明白。

奖励积分,如果你能给我的字符串交给alembic.still/distill得到它插上了我。

+3

这应该发布给程序员.SE –

+0

不是真的:这是一个关于编程库的非常具体的问题。这绝对是SO的主题。 – mikera

回答

4

Clojure中一贯的作风是不是定义抽象数据类型。我认为defadt功能已过时/已弃用。

而应考虑使用Clojure的正规地图或矢量定义你的数据结构。

如果您想要一个可用于使用协议的多态调度的命名类型,您可以使用deftypedefrecord。这是获得类ADT行为的灵活且快速的方式。

+0

这是我怀疑的,但谢谢你明确!我会坚持记录和类型,因为它更加习惯。 –