如何使序号中的功能不足?

问题描述 投票:0回答:1

由于我是pro log的新手,所以我制作了此程序,但是遇到很多麻烦,有人可以帮助我吗?下面是我的代码:

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.

我不知道如果有人可以提供帮助,请怎么解决。每当我打电话给它返回false时,都会感到有趣。

prolog less operators
1个回答
0
投票

显然,

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 already tested this!

您真的想要一个B:

amount(X,Y,Z,A):-
    android(X,Y,Z,A),
    A > 25000,
    featured(X,Y,Z,B),
    B =< 25000.

并且为什么在fail的末尾您fun?听起来一点都不有趣!

© www.soinside.com 2019 - 2024. All rights reserved.