A derivate of Lisp. A programming language with even less syntax than Tcl itself. (but special forms and the like...? RS)
See Tcl and LISP | Playing LISP | Serial summing.
There's a TkScheme. [maybe more than one?]
The classic Scheme book is SICP.
http://phaseit.net/claird/comp.lang.scheme/scheme.html
One interesting difference is that setting of (only global?) variables and function definition both are done with define, which creates a lambda if its first element is a list. Just for experimenting, here's how to have that in Tcl:
proc define {what how} { if {[llength $what]==1} { uplevel 1 set $what [list $how] } else { proc [lindex $what 0] [lrange $what 1 end] $how } } % define x 42 42 % define {+ x y} {expr {$x+$y}} % + $x $x 84