home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
dirs
/
tcl_447.lzh
/
TCL
/
tcl.lzh
/
tcl
/
help
/
proc
< prev
next >
Wrap
Text File
|
1990-05-03
|
3KB
|
53 lines
proc name args body
The proc command creates a new Tcl command procedure,
name, replacing any existing command there may have
been by that name. Whenever the new command is
invoked, the contents of body will be executed by the
Tcl interpreter. Args specifies the formal arguments
to the procedure. It consists of a list, possibly
empty, each of whose elements specifies one argument.
Each argument specifier is also a list with either one
or two fields. If there is only a single field in the
specifier, then it is the name of the argument; if
there are two fields, then the first is the argument
name and the second is its default value. braces and
backslashes may be used in the usual way to specify
complex default values.
When name is invoked, a local variable will be created
for each of the formal arguments to the procedure; its
value will be the value of corresponding argument in
the invoking command or the argument's default value.
Arguments with default values need not be specified in
a procedure invocation. However, there must be enough
actual arguments for all the formal arguments that
don't have defaults, and there must not be any extra
actual arguments. There is one special case to permit
procedures with variable numbers of arguments. If the
last formal argument has the name args, then a call to
the procedure may contain more actual arguments than
the procedure has formals. In this case, all of the
actual arguments starting at the one that would be
assigned to args are combined into a list (as if the
list command had been used); this combined value is
assigned to the local variable args.
When body is being executed, variable names normally
refer to local variables, which are created
automatically when referenced and deleted when the
procedure returns. One local variable is automatically
created for each of the procedure's arguments. Global
variables can only be accessed by invoking the global
command.
The proc command returns the null string. When a
procedure is invoked, the procedure's return value is
the value specified in a return command. If the
procedure doesn't execute an explicit return, then its
return value is the value of the last command executed
in the procedure's body. If an error occurs while
executing the procedure body, then the procedure-as-a-
whole will return that same error.