2

これまでのところ、このプログラムは 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 に設定すると、プロローグに次のように言わせます。それを行う最良の方法はどれですか?

4

2 に答える 2