summaryrefslogtreecommitdiff
path: root/PyGan/data/fact_proc/fact.c2m
blob: 45a6dfd2af36e5bead23f1ea4fceac8c8c648841 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 !
 ! Example of a recursive procedure.
 !
 !  input  to  "fact": *n*
 ! output from "fact": *n_fact*
 !
 INTEGER   n n_fact prev_fact ;
  ::  >>n<< ;
 IF n 1 = THEN
   EVALUATE n_fact := 1 ;
 ELSE
   EVALUATE n := n 1 - ;
   ! Here, "fact" calls itself
   PROCEDURE fact ;
   fact ::   <<n>>  >>prev_fact<< ;
   EVALUATE n_fact := n 1 + prev_fact * ;
 ENDIF ;
  :: <<n_fact>>  ;
 QUIT " Recursive procedure *fact* XREF " .