嵌套方程的真值表

时间:2016-12-16 17:45:25

标签: prolog

我正在尝试创建一个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,我该怎么办。

0 个答案:

没有答案