问题描述
我是Prolog语言的初学者,并且处于使用dynamic / 1的情况。在我的代码中有一行,例如:
:- dynamic actual_position/1,at/2,holding/1,talked/1,examined/1.
我想了解为什么Actual_position与/ 2相比为/ 1。
谢谢!
解决方法
斜杠(/
)之后的数字是谓词的 arity :这是它所使用的参数的数量。因此member/2
表示具有两个参数的member
谓词或函子。
关联性很重要,因为就像在Java中一样,一个可以重载谓词名称:一个人可以使用相同的 name 定义多个谓词,但不同的关联性。例如,append/2
[swi-doc]将列表的列表连接到单个列表,而append/3
[swi-doc]将两个列表附加到单个列表中。