所以四处挖掘试图弄清楚如何在 Clojure 中执行 ADT,我遇到了旧的 clojure-contrib,它很好,只是它已被替换。好的,没什么大不了的,只需查看被替换的 clojure-contrib 的分解库目录,但是对于我的生活,我找不到在新的 clojure-contrib 分解库中迁移 defadt 的位置。
那么它迁移到了哪里呢?
我一直在寻找http://dev.clojure.org/display/doc/Clojure+Contrib+Libraries但无法弄清楚。
加分,如果你能把字符串交给我alembic.still/distill
让它为我插入。
最佳答案
Clojure 中通常的风格不是定义 ADT。我认为 defadt
旧的/不推荐使用的功能。
相反,请考虑使用常规 Clojure 映射或向量来定义您的数据结构。
或者,您可以使用 deftype
或 defrecord
如果您想要一个可用于使用协议(protocol)进行多态调度的命名类型。这是一种获得类似 ADT 行为的灵活且快速的方法。
关于clojure - defadt 在新的 clojure contrib 中去了哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22022650/