Tcl's syntax is small enough to fit in the working memory of a typical human. -- Cameron Laird
The syntax of a Tcl script is minimal and elegant. A basic Tcl interpreter can be extended by adding additional procedures to it. The body of a procedure created using proc is also a script, and is processed as an additional level of evaluation. A procedure might also use one or more of its arguments to create and evaluate a script. Other procedures such as subst perform a subset of the steps performed to fully evaluate a script. Procedures such as exec, expr, glob, and regexp implement their own little languages that are independent of the main interpreter. expr is particularly interesting because it is also features evaluation of arbitrary Tcl scripts, making it a sort of wrapper over standard Tcl.
One of the distinguishing features of Tcl among string-based languages is that although it features substitutions, the substituted values are not themselves scanned for additional substitutions. This gives Tcl a distincly different flavour than Unix shells or TeX.
The syntax of a list is nearly the same as that of a script, except that it omits the dynamic features of substitution and command evaluation. I.e. a command is a list which may contain substitutions in the words.