当前位置 : 主页 > 大数据 > 区块链 >

clojure – 将core.logic扩展为自定义类型

来源:互联网 收集:自由互联 发布时间:2021-06-22
我正在试验 core.logic,并希望启用我自己的自定义数据类型来参与逻辑表达式: (deftype Expression [node vars] ....) 基本上,这表示数学表达式树中的节点,包含节点树和一组未使用的未绑定变量
我正在试验 core.logic,并希望启用我自己的自定义数据类型来参与逻辑表达式:

(deftype Expression [node vars]
  ....)

基本上,这表示数学表达式树中的节点,包含节点树和一组未使用的未绑定变量. node是常量,符号或(Operator Expression Expression ….)树节点.我希望能够使用core.logic来操纵数学表达式,并匹配这些表达式的子树.

如果可能的话,我怎么能这样做?

我从core.logic源代码中看到,有一个number of protocols看起来好像可以扩展(例如IUnifyTerms,IReifyTerms等)但是它们并不完全清楚这些都是如何使用的,以及我真的需要扩展.

core.logic旨在可扩展为自定义类型.然而,由于我们了解到究竟需要什么,因此协议可能会发生变化,因此没有详细记录.值得检查一下clojure.core.logic.nominal命名空间,以了解将core.logic扩展到自定义类型所需的内容.
网友评论