mik*_*era 5 protocols clojure logic-programming clojure-core.logic
我正在尝试使用core.logic,并希望启用我自己的自定义数据类型来参与逻辑表达式:
(deftype Expression [node vars]
....)
Run Code Online (Sandbox Code Playgroud)
基本上,这表示数学表达式树中的节点,包含节点树和一组未使用的未绑定变量.node是常量,符号或(Operator Expression Expression....)树节点.我希望能够使用core.logic来操纵数学表达式,并匹配这些表达式的子树.
如果可能的话,我怎么能这样做?
我从core.logic源代码中看到,有许多协议看起来好像可以扩展(例如IUnifyTerms,IReifyTerms等等)但是它们并不完全清楚这些都是如何使用的,以及我真正使用的那些需要扩展.
core.logic 旨在可扩展为自定义类型。然而,这并没有得到很好的记录,因为当我们了解到底需要什么时,协议可能会发生变化。值得检查clojure.core.logic.nominal命名空间,以了解将 core.logic 扩展到自定义类型所需的内容。
| 归档时间: |
|
| 查看次数: |
184 次 |
| 最近记录: |