목록에서 지정된 요소의 모든 색인을 찾아서 목록으로 반환해야합니다. 그래서 예를 들면 :Prolog - IndexofElement
?- indexList(a,[a,b,c,a,b],Rs).
Rs = [0,3]
내 아이디어입니다 :이 추적하면
positions(E, L, P) :- positions(E, L, 0, Rs).
positions(E, [], _, []).
positions(E, [E|Xs], P, [P|PT]) :- P1 is P + 1, positions(E, Xs, P1, PT).
positions(E, [X|Xs], P, PT) :- P1 is P+1, positions(E, Xs, P1, PT).
나는 모든 위치가 (마지막 단계 이전 단계)에있는 목록을 가져옵니다. 그러나 마지막 단계에서 그는 어떻게 든 그것을 바꾸고 진실을 되 돌린다.
gusbro의 관찰 : 당신이 E를 확인해야합니다
는 X와 다른 두 경우 모두 올바른 솔루션 일 것입니다. 수정 작업을하거나하지 않고 코드를 실행하고 어떤 일이 일어나는지보십시오. – Mihaipositions/4
의 세 번째 절에 또한