說我有下面的代碼:如何在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
的處理。任何建議嗎?