序言:找到一个列表中的元素的最后一个索引

序言:找到一个列表中的元素的最后一个索引

问题描述:

假设我有一个列表[1,2,1,3,2,0,8,3,1],我想找到最后3个的索引7,在prolog中如何做到这一点?序言:找到一个列表中的元素的最后一个索引

喜欢的东西

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). 

这遍历整个列表,保持看到最后一针的索引。这是功课吗?

+0

谢谢,我想我现在明白了。是的,这是作业 – SamChen