请教一下关于prolog的问题! 卡壳了好几天!求助

564 2021-10-25 10:25:25

问题是

输入是 [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()...

...全文
512 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSDN-Ada助手 2023-01-13
  • 打赏
  • 举报
回复
您可以前往 CSDN问答-Python 发布问题, 以便更快地解决您的疑问

51,407

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧