I want to implement a predicate of the form:
zipwithindex(?List1, ?List2)
which is true when the elements of List2
are the same as in List1
but are paired with the index of the element.
This is what I have:
zipwithindex([],I,S,S).
zipwithindex([H|T],I,S0,S):-
append(S0,[H/I],S1),
I1 is I+1,
zipwithindex(T,I1,S1,S).
zipwithindex(List1,List2):-
zipwithindex(List1,0,[],List2).
Is there a better way to implement this?