【发布时间】:2018-02-12 07:43:36
【问题描述】:
我是 Prolog 的新手,我无法理解 OR 运算符“;” 所以这是下面的一个例子:-
/*attributes(Person,Eats,Footwear).*/
attributes( personA,
eats(fried;baked),
footwear(shoes;slippers)
).
attributes( personB,
eats(roasted;baked),
slippers
).
person(Person, Eats, Footwear) :-
attributes(Person,
Eats,
Footwear
).
所以我需要区分 personA 和 personB,例如,如果我输入查询
person(Person, roasted, _).
由于只有 personB 具有烤的属性,它应该返回Person = personB
然后,例如,如果我输入查询
person(Person, baked, _).
由于 A 和 B 都有属性 bake,它应该返回 Person = personA Person = personB
谁能解释一下如何正确制定规则。谢谢。
【问题讨论】:
标签: prolog