0

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

我有以下规则

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

然后我做

read(X).

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

4

1 回答 1

0

是的你可以。例如

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

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

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

read(X), general(X).

Prolog 将找到 X 以实现其目标,然后继续进行目标general(X)。如果 X 是哺乳动物或鸟类,Prolog 会将目标与一般条款之一匹配,否则它将失败。

于 2012-06-07T06:36:39.220 回答