如何在Prolog中使“小于”功能?

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

由于我是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.

我不知道如果有人可以提供帮助,请怎么解决。每当我打趣的时候,它就会返回false。

prolog less operators
1个回答
1
投票

显然,

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!

您真的想拥有一个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.