complex.script (293B)
1 rec_fact :: (n: u64) : u64 { 2 if (n 0 == ) { 3 return 1; 4 } 5 6 return n fact(n - 1) *; 7 } 8 9 iter_fact :: (n: u64) : u64 { 10 i: u64 = 1; 11 12 while (n) { 13 i = i n *; 14 n = n 1 -; 15 } 16 17 return i; 18 } 19 20 main :: () : s32 { 21 n : u64 = 10; 22 23 x : u64 = rec_fact(n); 24 y : u64 = iter_fact(n); 25 26 return x y ==; 27 }