0
Supposons que j'ai une liste [1,2,1,3,2,0,8,3,1]
, je veux trouver l'index des 3 derniers qui est 7
, Comment faire en prolog?Prolog: trouver le dernier index d'un élément dans une liste
Supposons que j'ai une liste [1,2,1,3,2,0,8,3,1]
, je veux trouver l'index des 3 derniers qui est 7
, Comment faire en prolog?Prolog: trouver le dernier index d'un élément dans une liste
Quelque chose comme
last(List, Needle, Ret) :- last1(List, Needle, 0, -1, Ret).
last1([H | T], N, Idx, Acc, Ret) :- Idx2 is Idx + 1, (H == N, !, last1(T, N, Idx2, Idx, Ret); last1(T, N, Idx2, Acc, Ret)).
last1([], _, _, Acc, Acc).
Cette traverse toute la liste, le maintien de l'indice du dernier vu aiguille. Est-ce que ce sont les devoirs?
Merci, je crois comprendre maintenant. Oui, c'est le devoir – SamChen