0

exShell という課題のコードを受け取りました。その中で、コードは(not)/1否定に使用します。現在、すべてのインスタンスをに置き換えまし(\+)/1たが、そもそもなぜそれが存在するのか疑問に思っていました. cprolog やその他のプロローグ コンパイラ (cprolog など) の規則でエイリアス(\+)/1を作成することは可能ですか。(not)/1

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 に答える