Prolog 中的文字和谓词有区别吗?
而且,如果我没记错的话,文字与真值相关,但术语则不然。然而,为什么我们仍然说每个文字也是一个术语呢?我很困惑。
通常,我认为谓词和文字是不同的东西。 谓词是带有变量的语句,而文字是这些变量可以采用的值。
例如你的程序可能有一个规则:
parent(caesar, augustus).
这意味着凯撒是奥古斯都的父母。
这里
parent
是谓词,而 caesar
和 augustus
是文字。
如果你正在做一些美学的事情,你的程序可能有规则:
caesar.
augustus :- 1 = 0.
在这种情况下
caesar
和 augustus
也将分别是 true 和 false 的谓词。这个例子没有直观的意义,一般来说,只有在某些复杂的情况下才需要将文字也作为谓词。如果你才开始学习 prolog,我建议暂时不要担心这些。
Terms 是谓词参数可以采用的复合值。例如,您的程序可能有一条规则:
address(caesar, city(rome)).
这意味着凯撒住在罗马城。