sitting(mary, james).
sitting(rosie, andrew).
sitting(kiera, tom).
issitting(X, Y) :- sitting(X, Y).
嗨,我基本上要检查谁谁的true或false值被坐在旁边的是谁,在Prolog中返回False值?
当我在编译器
issitting(rosie, andrew).
返回true值类型,然而,当我输入
issitting(andrew, rosie).
返回一个错误的值(这应该是真的,因为它们坐在一起)。如果用户检查谁坐在一起(使用所有可能的组合),我不想添加三行额外的代码。
你会如何改变规则让Prolog明白,如果用户切换名称,他们仍然是真实的(不是假的)。
我不明白为什么它给我'错误'。
我被卡住,这是最好的我能得到这样做的远:/
谢谢。
梦幻般的答案。你能否称此为添加交换规则? –
@DanielLyons:谢谢。如果它是一个谓词相同的规则(我试图在这里避免显而易见的终止问题),我宁愿称它为交换。但当然,它是可交换的。 – false