Скажите, у меня есть следующий фрагмент кода:
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
. Любое предложение, пожалуйста?