progs/fact.fun
changeset 655 3d04ee04966d
parent 626 2d91b2107656
child 702 39e21a33ffb0
equal deleted inserted replaced
654:fb6192488b91 655:3d04ee04966d
     1 def fact(n) = if n == 0 then 1 else n * fact(n - 1);
     1 // a simple factorial program
       
     2 // (including a tail recursive version)
     2 
     3 
     3 def facT(n, acc) = if n == 0 then acc else facT(n - 1, n * acc);
       
     4 
     4 
     5 facT(15, 1)
     5 def fact(n) =
       
     6   if n == 0 then 1 else n * fact(n - 1);
     6 
     7 
     7 //fact(15)
     8 def facT(n, acc) =
       
     9   if n == 0 then acc else facT(n - 1, n * acc);
     8 
    10 
       
    11 def facTi(n) = facT(n, 1);
       
    12 
       
    13 //fact(10)
       
    14 //facTi(10)
       
    15 
       
    16 write(facTi(5 + 5))
       
    17