我是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).
我得到“否”作为答复。我确定我犯了一个愚蠢的简单错误,但是由于缺乏理解,很难找到它。谁能看到我的问题吗?
输入时:
|?- brother(tom, juli).
您会看到类似以下的响应(SWI Prolog):
true ? ;
no
| ?-
因此,它首先以“ true”(给出一个匹配项)响应,然后在您输入;
以显示更多解决方案后,它说“ no”表示没有其他解决方案。在这种情况下,某些序言翻译可能会说“否”或“假”,含义相同。序言解释器的响应最初会引发许多新的序言用户。
您也可以按“输入”,这意味着您已经完成了,并且不想看到任何其他解决方案:
true ?
yes
| ?-
然后您得到“是”。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句