我收到了一段名为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.
这是一个使用它的例子。
答案 0 :(得分: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
?-