home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / ANSWERS.ARC / ANS_199.PRO < prev    next >
Encoding:
Prolog Source  |  1988-06-21  |  1.0 KB  |  42 lines

  1. /*
  2.    Turbo Prolog 2.0, Answer to the Exercise on page 199.
  3.    
  4.    Copyright (c) 1986, 88 by Borland International, Inc
  5. */
  6.  
  7. Domains
  8.   integerlist = integer*    
  9.   
  10. Predicates
  11.   even_member ( integer, integerlist )
  12.   get_integer_list ( integerlist )
  13.   write_even_members ( integerlist )
  14.   
  15. Clauses
  16.   even_member(Head, [Head|_]) :- 
  17.       0 = Head mod 2.
  18.   even_member(Element, [_|Tail]) :-
  19.       even_member(Element, Tail).  
  20.       
  21.   get_integer_list([H|T]) :-
  22.       write("Enter an integer: ") ,
  23.       readint(H), ! ,
  24.       get_integer_list(T).
  25.   get_integer_list([]).
  26.  
  27.   write_even_members(L) :- 
  28.       even_member(E,L) ,
  29.       write(E,"\n") ,
  30.       fail.
  31.   write_even_members(_).      
  32.               
  33. Goal
  34.   makewindow(1,2,3,"",0,0,25,80) ,
  35.   write("Please enter the integers which ",
  36.         "you wish to include in the list.\n",
  37.         "  (Enter a non-integer to end list.)\n\n") ,
  38.   get_integer_list(List) ,
  39.   write("\nHere are the even numbers in the list:\n\n") ,
  40.   write_even_members(List) ,
  41.   write("\nPress any key...") ,
  42.   readchar(_).