我是 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/