dynamic - prolog 动态谓词/1 和/2 之间的区别

标签 dynamic prolog predicate

我是 Prolog 语言的初学者,我处于使用 dynamic/1 的情况。在我的代码中有一行,例如,它是这样的:

:- 动态 actual_position/1, at/2, holding/1, talked/1, examined/1.

我想了解为什么 actual_position 有/1 而 at 有/2。

谢谢!

最佳答案

斜杠后的数字 (/) 是谓词的arity:它是它采用的参数的数量。所以 member/2 表示一个带有两个参数的 member 谓词或仿函数。

元数很重要,因为就像在 Java 中一样,可以重载谓词名称:可以定义多个具有相同名称但元数不同的谓词。例如append/2 [swi-doc]将一个列表列表连接成一个列表,而append/3 [swi-doc]将两个列表附加到一个列表中。

关于dynamic - prolog 动态谓词/1 和/2 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64791589/

相关文章:

javascript - 如何让 Blaze(Meteor 模板引擎的独立部分)使用动态下载的模板

C++ 内存分配。矩阵

javascript - Angularjs - 动态 ng-options

Java - 将谓词转换为字符串

function - Clojure:如何执行一系列函数?

prolog - 在 Prolog 中定义谓词作为 (=)/2(统一)的替代

prolog - 在Prolog中重构纠结的循环规则

Prolog:编写一个像 Jeopardy 中的 Watson 一样的程序

list - SWI-Prolog : How to stop the predicate when the list is empty?(包括谓词)

debugging - xpath 表达式来模拟具有多个条件的子查询