1 | factorial_standard : n :Int , Int = |
2 | if lt n 2 |
3 | then |
4 | 1 |
5 | else |
6 | mul n (factorial_standard (minus n 1)); |
7 | |
8 | |
9 | factorial_acc : n:Int , acc:Int, Int = |
10 | if lt n 2 |
11 | then |
12 | acc |
13 | else |
14 | factorial_acc (minus n 1) (mul n acc); |
15 | |
16 | factorial_acc_sass : n:Int, acc:Int, Int = |
17 | if lt n 2 |
18 | then |
19 | acc |
20 | else |
21 | let new_n = minus n 1; |
22 | new_acc = mul n acc; |
23 | in |
24 | factorial_acc_sass new_n new_acc |
25 | ; |
26 |