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'). % hadles 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
true.
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