Posted to tcl by Stu at Sat Oct 31 17:05:25 GMT 2020view pretty

namespace eval n {
        proc z {elem incr} {
                variable a
                set a($elem) [expr {$a($elem) + $incr}]
        }
        proc go {} {
                timerate -calibrate {}
                interp alias {} ::n::goa {} ::n::z q
                namespace ensemble create -map {goe {z q}}
                variable a
                unset -nocomplain a
                set a(q) 1
                set ta [lindex [timerate {goa 3}] 0]
                unset -nocomplain a
                set a(q) 1
                set te [lindex [timerate {n goe 3}] 0]
                list a:$ta e:$te
        }
}
puts [n::go]


My result: a:3.557854 e:3.406559