| author | Christian Urban <christian.urban@kcl.ac.uk> | 
| Wed, 21 Oct 2020 14:55:20 +0100 | |
| changeset 786 | 261ea200555d | 
| parent 742 | 155426396b5f | 
| child 790 | 71ef7d9ef635 | 
| permissions | -rw-r--r-- | 
| 655 | 1  | 
// a simple factorial program  | 
2  | 
// (including a tail recursive version)  | 
|
| 
224
 
70198792c2aa
added
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
3  | 
|
| 655 | 4  | 
|
5  | 
def fact(n) =  | 
|
6  | 
if n == 0 then 1 else n * fact(n - 1);  | 
|
| 
224
 
70198792c2aa
added
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
7  | 
|
| 655 | 8  | 
def facT(n, acc) =  | 
9  | 
if n == 0 then acc else facT(n - 1, n * acc);  | 
|
10  | 
||
11  | 
def facTi(n) = facT(n, 1);  | 
|
| 
224
 
70198792c2aa
added
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
12  | 
|
| 655 | 13  | 
//fact(10)  | 
14  | 
//facTi(10)  | 
|
| 
224
 
70198792c2aa
added
 
Christian Urban <christian dot urban at kcl dot ac dot uk> 
parents:  
diff
changeset
 | 
15  | 
|
| 702 | 16  | 
write(facTi(6))  | 
| 655 | 17  |