【发布时间】:2012-02-17 23:49:38
【问题描述】:
我必须在我的序言程序中写出苹果暗示红色或绿色的语句。这是我实现的代码示例:
:-dynamic(red/1).
:-dynamic(green/1).
apple(a).
apple(b).
apple(A):-red(A);green(A).
我的问题是 ?- red(a) 和 ?-green(a) 应该返回 false,因为这不是给定的事实,我将它们设置为动态的,现在 ?-red(a) 和 ?-green(a) 确实返回 false。
但是red(A);green(A). 应该返回 true,因为苹果要么是红色要么是绿色
感谢您的回复:但是我的整个问题是 ?-red(a) 和 green(a) 在单独运行时都应该返回 false。而 ?-red(a);green(a) 应该返回 true。这就是我迷路的地方。如果您对如何获得结果有任何建议,我们将非常欢迎。
【问题讨论】:
-
谢谢大家的回复:
-
@ChrisMartin:您的编辑并没有太大的改进......
标签: prolog