Я пытаюсь написать процедуру order(List,Result)
, которая имеет List
в качестве входных данных и возвращает список Result
упорядоченных пар, такой что:
- первый элемент упорядоченной пары - это позиция пары в списке, а
- вторым элементом упорядоченной пары является элемент из списка n соответствующей позиции.
Пример:
если List = [a,b,c,d]
, порядок процедур (Список, Результат) выводит список:
Result = [(1,a), (2,b),(3,c),(4,d)]
.
Я борюсь со счетчиком за положение пары в списке. Я сделал такие попытки:
increment(Accum,Total):-
Total is Accum + 1.
order([],[]).
order([Head|Tail],Result):-
order(Tail, NewTail),
NewCount is Count + 1,
increment(NewCount,Count),
Result = [(Count,Head)|NewTail].
Пожалуйста, помогите кому-нибудь?