我在读书时遇到问题。
我看到程序使用谓词“简单”(我猜simple/1
)。我不知道这个谓词是什么意思,我在控制台中找不到?-help(simple)
。
但是当我在控制台中尝试一些查询时,它的工作方式如下:
5 ?- simple(p(x)).
false.
6 ?- simple(mia).
true.
7 ?- simple(Mia).
true.
8 ?- simple(f(Mia)).
false.
我想这是判断参数是条款(或变量)还是复杂条款的某种谓词。
答案 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 它是最基本的元编程设备,因为在不实例化变量的情况下,不可能对任何子句进行谓词(即执行代码,绑定变量),很多次我们感兴趣的重要部分。