我不明白这是什么意思
[sopio|...], [...|...]|...
在?- findall([X,Y], indirectowner(X, Y), L).
的结果
L = [[sopio, badri], [temur, badri], [temur, leila], [badri, anuki], [badri, tamar], [tamar, ioseb], [sopio, anuki], [sopio|...], [...|...]|...].
我发现了以下事实:
owner(sopio,badri).
owner(temur,badri).
owner(temur,leila).
owner(badri,anuki).
owner(badri,tamar).
owner(tamar,ioseb).
and子句:
indirectowner(X,Z) :-
owner(X,Z).
indirectowner(X,Z) :-
owner(X,Y), owner(Y,Z).
发布于 2018-06-06 04:20:04
答案是缩写的,以避免在屏幕上有太多的输出。在SWI-Prolog中,您可以在查询后按w
来编写整个答案,但是对于您的查询,您需要YOURquery ; true.
,因为它是确定性的,并且要使w
被接受,它需要一个非确定性查询。您还可以使用Prolog标志来更改行为。
https://stackoverflow.com/questions/50708222
复制相似问题