【发布时间】:2014-09-12 07:49:22
【问题描述】:
到目前为止,我已经让这个程序在 GNU prolog 中运行
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) 得到是,也可以输入 and(p,not(q)) 得到否定。现在我想做这样的事情:
我将 p 设置为 true,(通过使用 p.) 初始化它,并且 (and(p,q)) 设置为 true(但没有初始化 q),我想让 prolog 说: 存在一种解决方案:“q”必须为真
如果我将 p 和 (or(p,q)) 设置为 true,我希望 prolog 说: 存在两种解决方案,“q”可以是真或假。最好的方法是什么?
【问题讨论】: