0

我收到了一段名为 exShell 的作业的代码。在其中,代码(not)/1用于否定,我目前已经替换了所有实例,(\+)/1但我想知道为什么首先会出现。是否可以(\+)/1使用(not)/1或者是 cprolog 或其他一些 prolog 编译器(例如 cprolog)的约定。

solve(not A, C, Rules, (not Proof, C), T, Ask) :- !,
    T1 is -1 * T,
    solve(A, C1, Rules, Proof, T1, Ask),
    C is -1 * C1.

这是它被使用的一个例子。

4

1 回答 1

0

看起来not这里是一个一元运算符,例如用 声明op(500,fy,not),因此用作solve/6谓词正在处理的符号数据。例如,

?- op(500,fy,not).

Yes
?- write( not 3).
not 3

Yes
?- write_canonical( not 3).
not(3)

Yes
?- not 3 =.. X .

X = [not, 3] 

Yes
?-
于 2012-07-26T19:27:59.483 回答