我想写一个路由功能,但我似乎无法得到所需的结果。这是迄今为止的代码。 前身发现被挂N节点,并将它作为P.序言路由例程
traceroute(_,L) :- member((A,A),L).
traceroute(N,L) :-
predecessor(N,P),
append(N,L,L1),
traceroute(P,L1).
当我跑我traceroute(placeA, Y).
它返回数据.. Y = [ (_G575, _G575)|_G579] .
基本上是traceroute的第一线,我想如果任何成员是自己的前身,则终止递归。第二部分应循环遍历所有节点并将它们添加到列表(L)中。
节点存储,例如[(placeA,placeB),(placeB,placeC)和列表应存放像[placeA,placeB,placeC]
我不明白为什么我得到这些结果。