1

我们可以在序言中定义的关系中建立关系吗?

就像我有一个定义如下的关系:

relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.

现在还有一个依赖于 CctypeInt 和 Ru1 的变量

所以我在想类似的东西

relation(cctypeint,relation(ru1,...,ru2))

这可能吗?

4

1 回答 1

3

关系由 Prolog 中的谓词定义。没有内置的(但您可以通过使用术语扩展来做到这一点)语法方式来定义程序文本中谓词内的谓词,而且似乎没有理由这样做。您可以简单地编写单独的谓词并引用它们。您当然可以有嵌套术语,即术语作为其他术语的子术语。

你是什​​么意思

relation(CctypeInt,[0-{2,3,4}, 1-{2,3,4}, 2-{2}],Ru1),!.

? 这是一个陈述谓词 (,)/2 的子句,我怀疑它的意图。另一方面,您当然可以构建和使用 Prolog 术语,例如

relation(cctypeint,relation(ru_1,...,ru_n))

在您的程序中代表您的数据。

于 2012-04-12T11:24:16.380 回答