8

我已经阅读了 SO 问题,斜杠(/)在序言中做了什么?Prolog (SWI-Prolog) 中谓词“simple/1”的含义是什么,但这些链接似乎对我没有帮助。

我正在阅读一些关于 Prolog 的初学者教程。Solve/4喜欢或Go/1让我感到困惑的短语。那个斜线和数字是什么意思?

4

3 回答 3

14

它是函数在其签名中期望的参数数量。小心中缀运算符,它可以接受多个参数,即使它们的调用方式是将它们放在参数之间。也就是说,您可以将普通加法+, 视为二元运算符。所以A+B实际上与 相同+(A,B),这意味着您将定义++/2

于 2012-10-17T13:41:10.440 回答
2

我引用了“Prolog:标准:参考手册”的第 8 页(当我搜索“prolog 谓词指示器”时的 2^ 条目

谓词指示符...它是名称/Arity 形式的基本术语

ISO 内置 functor/3 访问此类数据

?- functor(append(a,b,c),Name,Arity).
Name = append,
Arity = 3.
于 2012-10-17T14:23:51.013 回答
2

正如 EMS 和 Chac 解释的那样,这个数字表示参数的数量。您会在文档中找到这个数字的原因是因为具有相同名称和不同数量(参数数量)的谓词是不同的谓词。

所以谓词:

my_predicate/3 

与谓词不同:

my_predicate/4

和数字被包括在内,以清楚地表明他们正在谈论的是哪一个。

于 2012-10-19T10:06:45.483 回答