我们可以在序言中定义的关系中建立关系吗?
就像我有一个定义如下的关系:
relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.
现在还有一个依赖于 CctypeInt 和 Ru1 的变量
所以我在想类似的东西
relation(cctypeint,relation(ru1,...,ru2))
这可能吗?
我们可以在序言中定义的关系中建立关系吗?
就像我有一个定义如下的关系:
relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.
现在还有一个依赖于 CctypeInt 和 Ru1 的变量
所以我在想类似的东西
relation(cctypeint,relation(ru1,...,ru2))
这可能吗?
关系由 Prolog 中的谓词定义。没有内置的(但您可以通过使用术语扩展来做到这一点)语法方式来定义程序文本中谓词内的谓词,而且似乎没有理由这样做。您可以简单地编写单独的谓词并引用它们。您当然可以有嵌套术语,即术语作为其他术语的子术语。
你是什么意思
relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.
? 这是一个陈述谓词 (,)/2 的子句,我怀疑它的意图。另一方面,您当然可以构建和使用 Prolog 术语,例如
relation(cctypeint,relation(ru_1,...,ru_n))
在您的程序中代表您的数据。