home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / prolog / library / prolo_c / exampl49.pro < prev    next >
Text File  |  1986-10-06  |  667b  |  29 lines

  1. /* program 49 */
  2. /*
  3.   This program demonstrates findall
  4. */
  5.  
  6. domains
  7.     name,address = string
  8.     age =integer
  9.     list =age*
  10.  
  11. predicates
  12.     person(name,address,age)
  13.     sumlist(list,age,integer)
  14.  
  15. goal
  16.     findall(Age,Person(_,_,Age),L),sumlist(L,Sum,N),
  17.     Ave=Sum/N,
  18.     write("\n\nThis program finds the \naverage age from three \nlists  with findall.\n\nAverage = ",Ave),nl,nl,nl.
  19.  
  20. clauses
  21.     sumlist([],0,0).
  22.     sumlist([H|T],Sum,N) :- sumlist(T,S1,N1),Sum=H+S1,N=1+N1.
  23.     person("Sherlock Holmes","22B Baker Street",42).
  24.     person("Pete Spier","Flat 22, 21st street",36).
  25.     person("Mary Darrow","Flat 2, Omega House",51).
  26.  
  27.  
  28.  
  29.