如何制作;少于;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

因为我是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,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.