【发布时间】:2012-03-15 21:38:56
【问题描述】:
我需要在序言中写下这些一阶语句。它们应该怎么写? red(X) 应该返回 false,green(X) 应该返回 false,green(X) 或 red(X) 应该返回 true
我已经有了这个代码:
% Assigning Facts
apple(a).
apple(b).
orange(c).
pear(d).
carrot(e).
onion(f).
pepper(g).
% Assigning Rules
red(X) :- apple(X).
green(X) :- apple(X).
fruit(X) :- apple(X).
fruit(X) :- orange(X).
fruit(X) :- pear(X).
vegetable(X) :- carrot(X).
vegetable(X) :- pepper(X).
tasty(X) :- fruit(X).
tasty(X) :- carrot(X).
tasty(X) :- not(onion(X)).
vegetable(X) :- not(tasty(X)).
【问题讨论】:
-
tasty/1 和vegetable/1 在参数未绑定时将不起作用,因此它们也不能用于下面的“存在”解决方案中。
-
你的前两行说每个苹果都是红色和绿色的。可能不是你想要的。
标签: prolog