Je dois trouver tous les index d'un élément donné dans une liste et le renvoyer sous forme de liste. Ainsi, par exemple:Prolog - IndexofElement
?- indexList(a,[a,b,c,a,b],Rs).
Rs = [0,3]
Mon idée est:
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).
Quand je trace ce que j'obtenir une liste dans laquelle chaque position est (à l'étape avant la dernière étape). Mais dans les dernières étapes, il change d'une manière ou d'une autre et revient juste vrai.
observation de gusbro, en ce qui concerne la vérification des E étant différent de X, est nécessaire que lorsque vous demandez plus juste la première solution, qui sera la bonne dans les deux cas. Essayez d'exécuter votre code avec et sans la modification et voir ce qui se passe. – Mihai