$ Recursive proc fact(n); if (n < 2) then return 1; else return n * fact(n - 1); end if; end proc; $ Iterative proc factorial(n); v := 1; for i in {2..n} loop v *:= i; end loop; return v; end proc;