我想请求有关prolog编程的帮助。 我是programinng的新手,在prolog的编程方面更加新鲜。
但是我在制作合适的节目时遇到了问题。
我有这种树:
tree(Giorgos(Giannis(Petros, Kyriakos), Eleni(Anna, Katerina))).
我希望添加规则以便为结果进行BFS和DFS查找:
Giorgos-Giannis-Petros-Kyriakos-Eleni-Anna-Katerina
Giorgos-Giannis-Petros-Kyriakos-Eleni-Anna-Katerina
尽管理解了BFS和DFS的概念,但我不知道如何实现它们。
另外我的第二个问题是这个程序:
father_of(paul, john).
father_of(paul, georgia).
mother_of(helen, maria).
mother_of(helen, peter).
siblings(X, Y) :- parent_of(Z, X), parent_of(Z, Y), X\=Y.
parent_of(X, Y) :- father_of(X, Y).
parent_of(X, Y) :- mother_of(X, Y).
当我提出问题时:
?-siblings(john, X).
然后我得到答案
X=georgia
在此之后,我认为程序应该停止,但我可以使用;
并得到答案:
false
但是在第二次问其他兄弟姐妹时:
?-siblings(maria, X).
程序在答案后停止
X=peter
我不知道为什么在没有兄弟姐妹的情况下第一次让我再问一遍,第二个问题在答案结束后才结束。