prolog - SWI-Prolog 动态/1 与动态/2

标签 prolog prolog-directive-dynamic

我正在自学 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/

相关文章:

graphics - 在 SWI(或任何)Prolog 中绘图

Prolog - 通过演绎减少知识库

prolog - 我可以将变量与assert/1一起使用吗?

prolog - 计数出现序言

prolog - 汉诺塔谜题(序言)

string - Prolog 中的字符串串联

arrays - 在 prolog 中断言和使用快速、大型数组

prolog - 我想在序言中创建动态事实

prolog - 在 gprolog 中声明一个动态谓词

prolog - 理解规则 - 错误作为答案