检查变量是否等于Prolog中的规则

时间:2012-06-07 00:59:13

标签: prolog

我想检查用户通知的变量是否等于某些现有规则,例如:

我有以下规则

general(mammal) :- facts.
general(bird) :- facts.

然后我做

read(X).

我想检查X是否等于哺乳动物或鸟类。有没有办法做到这一点? 感谢

1 个答案:

答案 0 :(得分:0)

是的,你可以。 E.g。

read(X), (X=mammal ; X=bird).

分号代表逻辑分离(OR运算符),为了确保目标的正确顺序,括号是存在的。 如果X被实例化为哺乳动物或鸟类,它将具有该值,否则将是假的。

编辑: 如果我理解正确,你想要:

read(X), general(X).

Prolog会找到X以达到其目标,然后继续进行目标general(X)。如果X是哺乳动物或鸟类,Prolog会将目标与其中一个通用条款相匹配,否则会失败。