Пролог: найти последний индекс элемента в списке - PullRequest
0 голосов
/ 04 сентября 2011

Предположим, у меня есть список [1,2,1,3,2,0,8,3,1], я хочу найти индекс последних 3, который 7, Как это сделать в прологе?

1 Ответ

0 голосов
/ 04 сентября 2011

Что-то вроде

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

Это пересекает весь список, сохраняя индекс последней иглы, которая была замечена.Это домашнее задание?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...