假设我有以下代码:
edge(a, b).
edge(a, c).
edge(a, d).
现在当我做
neighbors(V, N) :- edge(V, N), writeln(N), fail.
我可以将邻居列表打印到控制台。但是我怎样才能得到它作为结果列表呢?就像是
neighbors(V, Vs) :-
edge(V, N),
not(member(N, Vs)),
neighbors(V, [N|Vs]).
(由于member
处理方式,上面的部分并没有真正起作用。请问有什么建议吗?