prolog(SWI-Prolog)中谓词“simple / 1”的含义是什么

时间:2012-01-28 04:20:27

标签: prolog predicates iso-prolog

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

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

6 ?- simple(mia).
true.

7 ?- simple(Mia).
true.

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

我想这是判断参数是条款(或变量)还是复杂条款的某种谓词。

2 个答案:

答案 0 :(得分:2)

swi-prolog manual具有以下定义:

  简单(@Term)是semidet       术语是原子的或变量的。

定义在quintus prolog兼容库中;在quintus prolog documentation中,定义是:

  

简单(+期限)

     

术语目前被实例化为原子,数字和数据库   或变量。

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

答案 1 :(得分:0)

翻译成ISO谓词:

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

var / 1 它是最基本的元编程设备,因为在不实例化变量的情况下,不可能对任何子句进行谓词(即执行代码,绑定变量),很多次我们感兴趣的重要部分。