【发布时间】:2019-04-17 00:57:02
【问题描述】:
这是我事实的循环部分(定义人与人之间的关系):
connection(harry, ron).
connection(ron, harry).
connection(hermione, harry).
我想知道是否存在直接或通过其他人使用递归的连接。
这段代码在上述情况下会陷入死循环:
connected(A, B) :-
connection(A, B).
connected(A, B) :-
connection(A, C),
connected(C, B).
我希望递归在遇到以前的搜索时停止。 例如:
?- connected(hermione, X).
X = harry ;
X = ron.
谢谢!
【问题讨论】:
标签: prolog transitive-closure failure-slice