有关序言中谓词的问题,并附带示例

时间:2019-04-01 15:30:29

标签: prolog

所以,如果我有

__manifest__.py

我有正确的主意吗?我对此并不陌生,但我希望它能够看到该人的bmi为27,并且需要进行检查。请帮忙,任何感激。

1 个答案:

答案 0 :(得分:0)

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).

通话示例:

| ?- needs_checkup(Person).

Person = john_doe ? ;
no

| ?- needs_checkup(jane_doe).
no