A derivate of [Lisp]. A programming language with even less syntax than Tcl itself. (but special forms and the like...? [RS]) ---- I strongly disagree that Scheme has less syntax than Tcl! Reason: the symbols have a value ''per se''. Tcl has no symbols as $varname is just a shortcut for [[set varname]] where ''varname'' is just a constant, and the procedure ''set'' carries all the semantics. In Tcl, the command "list unknown" returns "unknown" because it is a constant. In Scheme, (list unknown) throws an error unless such symbol is defined. [wdb] ---- See [Tcl and LISP] | [Playing LISP] | [Serial summing]. There's a [Tk]Scheme. [[maybe more than one?]] [wdb]: There is a Tk connection to the Scheme implementation Chicken [http://wolf-dieter-busch.de/html/Software/Tools/ChickenTk.htm] 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 This prevents us from having spaces in variable names (not a big problem), but presents the function name and arguments in one list, similar to how it will later be called - people sometimes wonder why we define ''proc foo {x y} {..}'' but call it ''foo $x $y''... ---- [Category Language]