home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / EXAMPLES.ARC / CH10EX03.PRO < prev    next >
Encoding:
Text File  |  1988-06-21  |  961 b   |  42 lines

  1. /*
  2.    Turbo Prolog 2.0 Chapter 10, Example Program 3
  3.    
  4.    Copyright (c) 1986, 88 by Borland International, Inc
  5.    
  6. */
  7.    
  8. shorttrace write_list, assert_facts
  9. domains
  10.    list = symbol*
  11.  
  12. database
  13.    owns(symbol,symbol)
  14.  
  15. predicates
  16.    assert_facts
  17.    gather_goods(symbol)
  18.    write_list(list)
  19.  
  20. clauses
  21.    assert_facts :- 
  22.          assertz( owns(micki, dog) ) ,
  23.          assertz( owns(micki, car) ) ,
  24.          assertz( owns(micki, dress) ) ,
  25.          assertz( owns(eloise, car) ) ,
  26.          assertz( owns(claudio, tennis_racket) ) ,
  27.          assertz( owns(claudio, sneakers) ) ,
  28.          assertz( owns(kenny, boots) ).
  29.  
  30.    gather_goods(Who) :-  
  31.          findall(Goods, owns(Who,Goods), Goods_list) ,
  32.          write(Who, " owns:\n") ,
  33.          write_list(Goods_list).
  34.  
  35.    write_list([]):- !.
  36.    write_list([H|T]) :-  write(H,"\n"), write_list(T).
  37.  
  38. goal
  39.    assert_facts ,
  40.    gather_goods(micki) ,
  41.    write("That's all!\n").
  42.