我想检查用户通知的变量是否等于某些现有规则,例如:
我有以下规则
general(mammal) :- facts.
general(bird) :- facts.
然后我做
read(X).
我想检查X是否等于哺乳动物或鸟类。有没有办法做到这一点? 感谢
答案 0 :(得分:0)
是的,你可以。 E.g。
read(X), (X=mammal ; X=bird).
分号代表逻辑分离(OR运算符),为了确保目标的正确顺序,括号是存在的。 如果X被实例化为哺乳动物或鸟类,它将具有该值,否则将是假的。
编辑: 如果我理解正确,你想要:
read(X), general(X).
Prolog会找到X以达到其目标,然后继续进行目标general(X)
。如果X是哺乳动物或鸟类,Prolog会将目标与其中一个通用条款相匹配,否则会失败。