/ プロローグにおける/操作上のセマンティクス - プロローグ

プロローグにおける操作上の意味 - プロローグ

私の質問はとてもシンプルで理解しています私は何をしなければならないのですが、私の理解を表すことはできません。NANDゲートルールの観点から、XORやNORのようなゲートを定義する述語を書く方法は?

例えば ​​:

nand(t,t,f).
nand(t,f,t).
nand(f,t,t).
nand(f,f,t).

上記はナンドゲートの真理値表です。 ここで、Prologで上記の用語を使用してXORゲートを定義したい場合、たとえばXrol(X、Y、Z)についてPrologに質問する必要がありますが、3つの可能な回答が得られます。

ありがとうございました

回答:

回答№1は2

難しいのは、ナンド・ゲートという言葉で表現することです。私たちが信頼すると言いましょう この質問:解決策が次にある可能性があります

xor(A,B,C) :-
nand(A,B,O1),
nand(A,O1,O21),
nand(B,O1,O22),
nand(O21,O22,C).

テスト:

?- setof(X/Y/Z,xor(X,Y,Z),L).
L = [f/f/f, f/t/t, t/f/t, t/t/f].