我试图在prolog中定义“我朋友的朋友就是我的朋友”的规则,我有以下代码:
friends(john,jake).
friends(mike,hans).
friends(hans,robert).
friends(robert,angela).
mutual_friendship(X,Y):-
friends(X,Y);
friends(Y,X).
friendship(X,Y):-
mutual_friendship(X,Y),!;
mutual_friendship(Y,Z), friendship(Z,X).
它做得很好,它能够通过 Hans 和 Robert 检测 Mike 和 Angela 之间的友谊,问题是当我试图找到 John 和 Angela 之间的友谊时,例如,他们没有联系,但程序陷入了无限循环。