home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / Borland Plateform / Turbo Prolog 2 / EXAMPL49.PRO < prev    next >
Encoding:
Prolog Source  |  1986-04-25  |  640 b   |  23 lines

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