A * 반복에 대한 모든 후속 주를 찾아서 [(비용, 주), ...]와 같은 목록에 넣을 술어를 작성 중입니다. 바로이 시점에이 자리에 있습니다 :이 Prolog 술어가 통합되지 않는 이유는 무엇입니까?
addSuccessors(L, [], _).
addSuccessors(L, [X|T], OrigList) :- memb(OrigList, Index, X),
add((X, Index), L, List2),
addSuccessors(List2, T, OrigList).
addSuccessors(L, [X|[]], OrigList) :- memb(OrigList, Index, X),
add((X, Index), L, L2),
addSuccessors(L2, [], OrigList).
Add는 목록 끝에 무언가를 추가하면 memb은 목록의 (색인) 요소를 가져옵니다. 나는 그들이 일을 알고, 내가 맨 아래 조건에 L2 볼 때 나는 매우 실망이
?- addSuccessors(X, [1500, 3670], [0, 0, 0, 1500, 3670]).
X = [] ;
[ (1500, 3), (3670, 4)]
X = [] ;
X = [_G1175] ;
[_G1175, (1500, 3), (3670, 4)]
X = [_G1175] ;
X = [_G1175, _G1181] ;
[_G1175, _G1181, (1500, 3), (3670, 4)]
X = [_G1175, _G1181] ;
...
같은를하기 때문에 [(1500, 3), (3670, 4)] 목록입니다 무엇을 얻을 I 내가 전화를 한 후에 X를 원해서 내가 원하는 것을하고있는 것처럼 보인다 ... 내가 원하는 곳에서.
제발, 어떻게 해결할 수 있습니까?