, . , . , . , - . ( ).
4.
( 1).
factorial(N,FactN):- fact(N,FactN,1,1).
fact(N,FactN,I,P):- /* I - */
I<N /* P */
I1 is I+1, /* - */
P1 is P*I1,
fact(N,FactN,I1,P1).
fact(N,FactN,N,FactN).
3.3
4 . :
?-factorial(3,F).
5.
( 2, ).
factorial(N,FactN):- fact(N,FactN,1).
fact(N,FactN,P):-
N>0,
P1 is P*N,
N1 is N-1,
fact(N1,FactN,P1).
fact(0,FactN,FactN).
3.4
5 . :
?-factorial(4,F).
.
6.
.
/* 1, '','',''*/
kurs(1,gruppa('',gruppa('',gruppa('',empty)))).
kurs(2,gruppa('',gruppa('',gruppa('',
gruppa('',empty))))).