Posted to tcl by kbk at Tue Aug 21 02:14:10 GMT 2012view pretty

namespace path ::tcl::mathop

proc U {x args} {tailcall apply $x $x {*}$args}

puts [U {{f n} {
    if {$n <= 1} {
	return $n
    } else {
	tailcall + [U $f [- $n 1]] [U $f [- $n 2]]
    }
}} 10]