home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l210 / 1.ddi / EXAMPLES.ARC / CH08EX08.PRO < prev    next >
Encoding:
Prolog Source  |  1988-06-21  |  668 b   |  31 lines

  1. /*
  2.    Turbo Prolog 2.0 Chapter 8, Example Program 8
  3.    
  4.    Copyright (c) 1986, 88 by Borland International, Inc
  5.    
  6. */
  7.    
  8. domains
  9.    name, address = string
  10.    age = integer
  11.    list = age*
  12.  
  13. predicates
  14.    person(name, address, age)
  15.    sumlist(list, age, integer)
  16.  
  17. goal
  18.    findall(Age, person(_, _, Age), L),
  19.    sumlist(L, Sum, N),
  20.    Ave = Sum/N,
  21.    write("Average =", Ave), nl.
  22.  
  23. clauses
  24.    sumlist([], 0, 0).
  25.    sumlist([H|T], Sum, N) :- sumlist(T, S1, N1), Sum=H+S1,
  26. N=1+N1.
  27.  
  28.    person("Sherlock Holmes", "22B Baker Street", 42).
  29.    person("Pete Spiers", "Apt. 22, 21st Street", 36).
  30.    person("Mary Darrow", "Suite 2, Omega Home", 51).
  31.