これまでのところ、このプログラムは GNU プロローグで動作するようになりました
not(X) :- \+ X.
and(X, Y):- X , Y.
or(X, Y):- X ; Y.
implies(X, Y):- \+ X ; Y.
p.
q.
:- initialization(main).
main :-
write('Program start'), nl.
and(p,q) と入力して yes を取得することも、and(p,not(q)) を入力して no を取得することもできます。今、私はこのようなことをしたいと思います:
p を true に設定し (p.) で初期化し、(and(p,q)) を true に設定し (ただし、q を初期化せずに)、プロローグに次のように言ってもらいたい: 1 つの解決策が存在する: "q" は true でなければならない)
p と (or(p,q)) を true に設定すると、プロローグに次のように言わせます。それを行う最良の方法はどれですか?