home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 9 / 09.iso / l / l217 / 2.ddi / EXAMPLES / CH07EX07.PRO < prev    next >
Encoding:
Prolog Source  |  1990-03-26  |  498 b   |  23 lines

  1. /*
  2.    Copyright (c) 1986, 90 by Prolog Development Center
  3. */
  4.    
  5. predicates
  6.    factorial(integer, real)
  7.    factorial_aux(integer, real, integer, real)
  8.  
  9. /* Numbers likely to exceed 32767 are declared as reals. */
  10.  
  11. clauses
  12.    factorial(N, FactN) :-
  13.       factorial_aux(N, FactN, 1, 1).
  14.  
  15.    factorial_aux(N, FactN, I, P) :-
  16.       I <= N, !,
  17.       NewP = P * I,
  18.       NewI = I + 1,
  19.       factorial_aux(N, FactN, NewI, NewP).
  20.  
  21.    factorial_aux(N, FactN, I, FactN) :-
  22.       I > N.
  23.