Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/prolog/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查变量是否等于Prolog中的规则_Prolog - Fatal编程技术网

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

检查变量是否等于Prolog中的规则,prolog,Prolog,我想检查用户通知的变量是否等于某些现有规则,例如: 我有以下规则 general(mammal) :- facts. general(bird) :- facts. 那我会的 read(X). 我想检查X是否等于哺乳动物或鸟类。有办法吗? 谢谢是的,你可以。例如 read(X), (X=mammal ; X=bird). 分号表示逻辑析取或运算符,括号用于确保目标的正确顺序。 如果X被实例化为哺乳动物或鸟类,它将具有该值,否则它将为false 编辑: 如果我理解正确,您希望: read(X

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

我有以下规则

general(mammal) :- facts.
general(bird) :- facts.
那我会的

read(X).
我想检查X是否等于哺乳动物或鸟类。有办法吗? 谢谢

是的,你可以。例如

read(X), (X=mammal ; X=bird).
分号表示逻辑析取或运算符,括号用于确保目标的正确顺序。 如果X被实例化为哺乳动物或鸟类,它将具有该值,否则它将为false

编辑: 如果我理解正确,您希望:

read(X), general(X).

Prolog将找到X,以实现其目标,然后进入目标generalX。如果X是哺乳动物或鸟类,Prolog将把目标与其中一个通则匹配,否则它将失败。

但我希望程序自动完成。我希望它检查每个一般规则,如果X等于它的名称