我正在尝试创建一个prolog程序来打印出一个声明的真实性。它适用于示例truthtable(A,B,and(A,B))
,
但是如果我尝试truthable(A,B,or(A,and(A,B)))
它就无效,并将所有内容显示为false
。
and(true,true):- true.
and(false,true):-false.
and(true,false):-false.
and(false,false):-false.
or(true,true):-true.
or(false,true):-true.
or(true,false):-true.
or(false,false):-false.
non(true):-false.
non(false):-true.
evaluate(E, true) :- E, !.
evaluate(E, false).
bool(true).
bool(false).
truthtable(A,B,E):-
bool(A),
bool(B),
write(A),
write(' \t '),
write(B),
write(' \t '),
evaluate(E, R),
write(R),
nl,
fail.
如果我希望用户添加任意数量的输入,例如A,B和C,不仅仅是A和B,我该怎么办。