home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Power Programming
/
powerprogramming1994.iso
/
progtool
/
borland
/
jnfb88.arc
/
TAIL.ARC
/
FACT2.PRO
< prev
next >
Wrap
Text File
|
1987-10-22
|
520b
|
28 lines
/* FACT2.PRO */
/* Tail recursive program
to compute factorials */
PREDICATES
factorial(integer,real)
factorial_aux(integer,real,integer,real)
/* Numbers likely to exceed
32767 are declared as reals */
CLAUSES
factorial(N,FactN) :-
factorial_aux(N,FactN,1,1).
factorial_aux(N,FactN,I,P) :-
I <= N,
NewP = P*I,
NewI = I+1,
!,
factorial_aux(N,FactN,NewI,NewP).
factorial_aux(N,FactN,I,FactN) :-
I > N.