Posted to tcl by evilotto at Wed Jun 26 17:52:55 GMT 2013view raw

  1. proc tcl::mathfunc::a {m n} {
  2. if {$m == 0} {
  3. return [expr {$n + 1}]
  4. } elseif {$m > 0 && $n == 0} {
  5. tailcall tcl::mathfunc::a [expr {$m - 1}] 1
  6. } elseif {$m > 0 && $n > 0} {
  7. tailcall tcl::mathfunc::a [expr {$m - 1}] [tcl::mathfunc::a $m [expr {$n - 1}]]
  8. }
  9. }
  10.