我有这个代码:
res([],M,M).
res([[A,B]|G],inM,M) :-
dfs(A, [[A,B]|G], [], [], Out),
processResponse(Out,inM,M1),
dfs(B, [[A,B]|G], [], [], Out2),
processResponse(Out2,M1,M2),
res(G,M2,M).
如果我res([],[],M)
在解释器上运行 , 它可以正常工作并返回M = []
.
如果我运行res([[a,b]],[],M)
,它会失败。我尝试查看跟踪并立即失败,res
甚至没有尝试dfs
或任何其他规则。如果我直接在解释器上编写规则,使用相同的输入,它们就可以正常工作。
我正在使用 SWI Prolog。为什么会这样?我应该改变什么才能使这项工作?