core.logicを試していますが、独自のカスタムデータ型がロジック式に参加できるようにしたいと考えています。
(deftype Expression [node vars]
....)
基本的に、これは数式ツリー内のノードを表し、ノードツリーと使用される非バインド変数のセットが含まれます。node
定数、シンボル、または(Operator Expression Expression....)
ツリーノードのいずれかです。core.logicを使用して数式を操作し、そのような式のサブツリーと照合できるようにしたいと思います。
可能であれば、どうすればこれを行うことができますか?
core.logicのソースコードから、拡張するのに適しているように見えるプロトコルがいくつかIUnifyTerms
あることがわかりますが(たとえば、IReifyTerms
など)、これらすべてがどのように使用されるのか、そして実際にどのプロトコルが使用されるのかは完全には明確ではありません。拡張する必要があります。