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

proc tcl::mathfunc::a {m n} {
  if {$m == 0} {                       
    return [expr {$n + 1}]
  } elseif {$m > 0 && $n == 0} {
    tailcall tcl::mathfunc::a [expr {$m - 1}] 1
  } elseif {$m > 0 && $n > 0} {
    tailcall tcl::mathfunc::a [expr {$m - 1}] [tcl::mathfunc::a $m [expr {$n - 1}]]
  }
}