[[Discuss the definition of procedure here] [RS]: A procedure is a [script] with an argument list (in other words, a [lambda]) bound to a [command] name, by which it can be called. The arguments make the initial set of local variables, to which you might add others. All of these will be removed on leaving the procedure. See [global] or [variable] or [upvar] on how to "import" variables from upper scopes. In [Tcl], procedures are defined with the [proc] command, for example: proc myproc {arg1 arg2} { # do something here, e.g. puts arg1:$arg1,arg2:$arg2 } Each procedure returns a result - if not explicitly by [return], then it's the result of the last command. So in Tcl, every procedure is also a function. ---- [Category Glossary]