Version 5 of tclsh as a powerful calculator

Updated 2004-07-13 19:49:23 by GPS

George Peter Staplin: July 10, 2004 - It sometimes amazes me how beautiful some aspects of Tcl are. I've been using proc unknown args {expr $args} for a while for doing calculations and tests when designing software. Today it occured to me that I could make life easier and avoid so many parentheses by extending that simple unknown procedure to this:

 proc unknown args {set ::that [expr $args]}

Now I can do:

 $ echo "proc unknown args {set ::that [expr \$args]}" > .tclshrc
 $ tclsh8.4 
 % 1000 * 256
 256000
 % $that / 8
 32000

Scott Nichols Really cool. Would there be any issues adding your calculator proc to existing Tcl applications? This would be helpful and save typing time for programmers.

George Peter Staplin: Error handling and auto-loading/lazy-loading might not work the same. You could do it this way:

 rename unknown _unknown
 proc unknown args {
  global that
  if {[catch {expr $args} that]} {
   uplevel 1 [concat _unknown $args]
  }
 }