说我有下面的代码:如何在Prolog回溯期间获取值的列表?
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
的处理。任何建议吗?