如何制作;少于;Prolog中的函数?
因为我是Prolog新手,所以我制作了这个程序,但是有很多麻烦,有人能帮我吗 下面是我的代码:如何制作;少于;Prolog中的函数?,prolog,comparison,operators,Prolog,Comparison,Operators,因为我是Prolog新手,所以我制作了这个程序,但是有很多麻烦,有人能帮我吗 下面是我的代码: android(samsung,s10,brown,90000). android(huwawei,mate10lite,black,34000). android(oppo,f9,blue,20000). featured(nokia,1110,brown,10000). featured(qmobile,q3,black,24000). featured(gfive,g300,blue,3000
android(samsung,s10,brown,90000).
android(huwawei,mate10lite,black,34000).
android(oppo,f9,blue,20000).
featured(nokia,1110,brown,10000).
featured(qmobile,q3,black,24000).
featured(gfive,g300,blue,30000).
amount(X,Y,Z,A):-
android(X,Y,Z,A),
A > 25000,
featured(X,Y,Z,A),
A>25000.
fun:-
amount(X,Y,Z,A),
writef("cellphone having less than 25K is",[X],[Y],[Z],[A]),
fail.
我不知道有什么问题,如果有人能帮忙,请帮我解决。
每当我称之为“乐趣”时,它都是假的。显然
amount(X,Y,Z,A):-
android(X,Y,Z,A), <---+
A > 25000, +--- exactly as for X,Y,Z, this is the SAME A
featured(X,Y,Z,A), <---+
A>25000. <------- ... so you've already tested this!
你为什么会失败。在
乐趣
的结尾?听起来一点也不好玩 即使这样做了,我还是试过了答案是错的。。我想要安卓和特色手机的名称、型号和颜色。但是答案仍然是错误的。@FaizanHasan,因为你在最后调用了“fail”。兄弟,即使我删除了fail,它仍然返回false。@FaizanHasan,这是因为android(X,Y,Z,A)
中没有一个是特色的(X,Y,Z,B)
。因此,购物的可能性最终是空的。没有解决办法。您必须扩展数据库。。。。
amount(X,Y,Z,A):-
android(X,Y,Z,A),
A > 25000,
featured(X,Y,Z,B),
B =< 25000.