我是 Prolog 的新手,我正在尝试对图表进行一些操作。
我的实现有一个问题,由于暴露的时间很长很复杂,我会给出一个简单类似的问题。
假设我们有以下图表:
edge(a,e).
edge(e,d).
edge(d,c).
edge(c,b).
edge(b,a).
edge(d,a).
edge(e,c).
edge(f,b).
我想让这个图双向。我使用以下代码:
graph(Graph):-findall(A-B, edge(A,B), L),
findall(B-A, edge(A,B), L1),
append(L, L1, Graph).
执行查询时,我得到以下结果:
?- graph(Graph).
Graph = [a-e, b-a, c-b, d-a, d-c, e-c, e-d, f-b, ... - ...|...].
我的问题不在代码中我的问题在结果中,如您所见,我没有得到完整的结果,它总是只给我 8 个边,其余的没有显示。
如何解决这个问题?