我是Prolog的新手并且遇到了一些困难。我有:
man(ken).
man(tom).
woman(juli).
father(ken, tom).
father(ken, juli).
male(A) :- man(A).
brother(A,B) :- male(A), father(C,A), father(C,B), (A \= B).
我知道男/男是多余的,但这是任务的一部分。无论如何,当我尝试类似的东西时:
|?- brother(tom, juli).
我得到“不”作为回应。我确信我犯了一个愚蠢的,简单的错误,但我缺乏理解使得它很难找到。谁能看到我的问题是什么?
答案 0 :(得分:3)
当您输入:
|?- brother(tom, juli).
你会看到类似这样的回复(SWI Prolog):
true ? ;
no
| ?-
所以它首先回复“true”(给出匹配),然后,在您输入;
以显示更多解决方案后,它会说“不”表示没有其他解决方案。在这种情况下,一些prolog解释者可能会说“不”或“假”,具有相同的含义。 prolog解释器的这种反应最初会引发许多新的prolog用户。
您也可以按“输入”,这意味着您已完成并且不希望看到任何进一步的解决方案:
true ?
yes
| ?-
然后你得到“是”。