51,407
社区成员
发帖
与我相关
我的任务
分享问题是
输入是 [and, a, b, c, d] 或者 [and, [or, b, c], [not, a], [and, c, d]] ,然后让prolog去判断这个输入的命题是正确还是错误的
比如 [[a, y], [b, n], [c, y], [d, y]] 设定 a 是 yes, b 是 no, c 是 yes, d 是 no.
然后该如何写一个 evalb() 去判断这个命题是正确还是错误的呢?提前谢谢了
这是我目前的代码:
mysub(X, Y, [], []).
mysub(X, Y, [H | R], Result) :- atomic(H), Y = H, mysub(X, Y, R, Temp), Result = [X | Temp].
mysub(X, Y, [H | R], Result) :- atomic(H), mysub(X, Y, R, Temp), Result = [H | Temp].
mysub(X, Y, [H | R], Result) :- mysub(X, Y, H, H1), mysub(X, Y, R, Temp), Result = [H1 | Temp].
myts([[a,y], [b,n], [c,y]]).
myformula([and, b, c , a]).
myformula2([and, [or, b, c], [and, a, b]]).
myformula3([or, a, b, c]).
mysubtv([], F, F).
mysubtv([H | R], F, Result) :- H = [X, Y], mysub(Y, X, F, Temp), mysubtv(R, Temp, Result).
evalb()...
eval()....
evaland()....
evalor()...