prolog中谓词的问题及实例

prolog中谓词的问题及实例,prolog,Prolog,所以如果我有 highbmi(bmi>=25). highbmi(bmi=<29.9) has_bmi(person,27). needscheckup(X):-has_bmi(X,bmi>=25). 高bmi(bmi>=25)。 高bmi(bmi==25)。 我的想法对吗?我是新手,但我希望它能够看到这个人的bmi为27,需要检查。请提供帮助,谢谢。序言中的变量以大写字母或下划线开头。此外,Prolog不是函数式语言,因此诸如bmi>=25之类的谓词参数不会作为函数调用进

所以如果我有

highbmi(bmi>=25).
highbmi(bmi=<29.9)
has_bmi(person,27).
needscheckup(X):-has_bmi(X,bmi>=25).
高bmi(bmi>=25)。
高bmi(bmi==25)。

我的想法对吗?我是新手,但我希望它能够看到这个人的bmi为27,需要检查。请提供帮助,谢谢。

序言中的变量以大写字母或下划线开头。此外,Prolog不是函数式语言,因此诸如
bmi>=25
之类的谓词参数不会作为函数调用进行计算。请尝试:

high_bmi(BMI) :-
   25 =< BMI, BMI =< 29.9.

has_bmi(john_doe, 27).
has_bmi(jane_doe, 18).

needs_checkup(Person) :-
    has_bmi(Person, BMI),
    high_bmi(BMI).

Prolog中的变量以大写字母或下划线开头。此外,Prolog不是函数式语言,因此诸如
bmi>=25
之类的谓词参数不会作为函数调用进行计算。请尝试:

high_bmi(BMI) :-
   25 =< BMI, BMI =< 29.9.

has_bmi(john_doe, 27).
has_bmi(jane_doe, 18).

needs_checkup(Person) :-
    has_bmi(Person, BMI),
    high_bmi(BMI).