First of all let me apologize for posting in the wrong forum ... but I didn't find one for prolog... please redirect me if we have one ... and anyone's response if he/she knows the answer is appreciated.

am trying to print the elements of a list.... one per line using a predicate of arity 1 .... which I am able to do with the code:

display_list([]) :- !, write('\nThe list is empty').		  % handles empty list
display_list([H|T]) :- write('        '), write(H), nl, display_list(T).

The problem is: I want to have the sequence number of the list element in front of it: For example,

1 North
2 South
3 East
4 West

I am not able to able to do that.

The code I am writing is:

increment(X,Y) :- Y is X+1.

display_list([])    :- !, write('\nThe list is empty').		  
display_list([H|T]) :- X = 0, increment(X,Y), write(Y),write('        '), write(H), nl, display_list(T).
The output I get as expected is:
11 ?- display_list([north, south, east]).
1 north
1 south
1 east

The list is empty

Also I keep on getting this 'The list is empty' everytime the elements are exhausted and not only when the input list is empty .....

Please advice ...... Thanks