0

我在看书时遇到问题。我看到一个程序使用谓词“简单”(我猜simple/1)。?-help(simple)我不知道这个谓词是什么意思,我在控制台中找不到它 。但是当我在控制台中尝试一些查询时,它的工作方式类似于:

5 ?- simple(p(x)).
false.

6 ?- simple(mia).
true.

7 ?- simple(Mia).
true.

8 ?- simple(f(Mia)).
false.

我想这是某种谓词来确定参数是术语(或变量)还是复杂术语。

4

2 回答 2

2

swi -prolog 手册有如下定义:

simple(@Term) is semidet 术语是原子的或变量。

定义在 quintus prolog 兼容性库中;在quintus prolog 文档中,定义是:

简单(+术语)

Term 当前实例化为原子、数字、数据库或变量。

在任何情况下,如果参数是一个简单的术语,则 simple/1 为真(不确定 quintus 手册对数据库的含义;我猜可能是 ODBC 连接的处理程序)

于 2012-01-28T04:32:51.397 回答
0

翻译成 ISO 谓词:

simple(T) :- var(T) ; atomic(T).

var/1它是最基本的元编程设备,因为如果不实例化变量,就不可能对任何子句进行谓词(即执行代码、绑定变量),而这很多时候是我们感兴趣的基本部分。

于 2012-01-28T08:42:55.673 回答