我正在自学 Prolog,并得到了一些例子。
其中一个使用 dynamic/1
内置指令:
:- dynamic(items/1).
我明白了动态的概念。该人可以通过断言修改谓词,并撤回谓词。
但是,该程序还在某些地方使用了以下内容:
:- dynamic(location/2).
/1和/2这两个有什么区别,它们也是/3 ..../n吗?
最佳答案
在 Prolog 中,谓词由其名称(或仿函数)和其参数数量(或元数)来标识。因此,items/1
表示带有仿函数 items
和元数 1
的谓词,而 location/2
表示带有仿函数 location
和 arity 2
。具有相同仿函数但元数不同的两个谓词是不同的谓词。
关于prolog - SWI-Prolog 动态/1 与动态/2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23226564/