我已经阅读了SO问题what does slash(/) do in prolog?和What is the meaning of predicate “simple/1” in Prolog (SWI-Prolog),但这些链接似乎对我没有帮助。
我正在阅读一些关于Prolog的初学者教程。
像Solve/4
或Go/1
这样的短语使我感到困惑。什么斜线和数字意味着什么?
答案 0 :(得分:13)
该函数在其签名中期望的参数数量。注意中缀运算符,它可以接受多个参数,即使它们被调用的方式是将它们放在参数之间。也就是说,您可以将普通加法+
等内容视为二元运算符。因此A+B
与+(A,B)
实际上相同,这意味着您可以使用+
定义+/2
。
答案 1 :(得分:2)
我引用了“Prolog:The Standard:Reference Manual”第8页(当我googled'prolog谓词指标'时的2 ^条目)。
谓词指标......这是名称/精神
形式的基础术语
ISO内置仿函数/ 3访问此类数据
?- functor(append(a,b,c),Name,Arity).
Name = append,
Arity = 3.
答案 2 :(得分:2)
正如EMS和Chac解释的那样,这个数字表示参数的数量。您在文档中找到此数字的原因是因为具有相同名称和不同arity(参数数量)的谓词是不同的谓词。
所以谓词:
my_predicate/3
是不同的谓词:
my_predicate/4
并且包含数字以清楚地表明他们正在谈论哪一个。