2

我正在自学 Prolog,并获得了一些示例。

其中之一使用dynamic/1内置指令:

:- dynamic(items/1).

我得到了动态的想法。那可以通过断言修改谓词,并收回谓词。

但是,该程序还在某些地方使用以下内容:

:- dynamic(location/2).

两个/1和/2有什么区别,它们也是/3 .... /n吗?

4

1 回答 1

2

在 Prolog 中,谓词由它们的名称(或函子)它们的参数数量(或数量)来标识。因此,items/1用函子和元数表示谓词,而用函子items和元数1表示谓词。具有相同函子但元数不同的两个谓词是不同的谓词。location/2location2

于 2014-04-22T17:48:36.223 回答