Go4Expert (http://www.go4expert.com/)
-   C (http://www.go4expert.com/forums/c/)
-   -   PROLOG Help (http://www.go4expert.com/forums/prolog-help-t9891/)

metahuman 9Apr2008 20:56

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

All times are GMT +5.5. The time now is 00:29.