.help "defpac,defpar,deftask,defvar" Feb86 language
.ih
NAME
.nf
defpac  -- test if the named package is defined
deftask -- test if the named task is defined
defpar  -- test if the named parameter is defined
defvar  -- test if the named environment variable is defined
.fi
.ih
USAGE
.nf
defpac  (pacname)
deftask (taskname)
defpar  (param)
defvar  (variable)
.fi
.ih 
PARAMETERS
.ls pacname
An IRAF package name.
.le
.ls taskname
An IRAF taskname.  It may be specified as "taskname" or as
"packagename.taskname".
.le
.ls param
An IRAF parameter name.  It may be specified as "paramname",
"taskname.paramname" or "packagename.taskname.paramname".
.le
.ls variable
An environment variable name.  It may be specified as "varname".
.le
.ih
DESCRIPTION
These routines return a boolean value indicating whether the
relevant parameter, task or package has been defined.
A task becomes defined when the package to which it belongs is "loaded"
by entering the name of the package as a command, or whenever a \fItask\fR
declaration is input to the CL.  A parameter becomes defined when the
task to which it belongs is defined; the task need not be currently
executing for its parameters to be defined.  When a package is exited,
e.g., after entry of the \fIbye\fR command, all the task and parameter
declarations for the package are discarded.  Environment variables may
be either in the host environment, or in the CL environment as a result
of a \fIset\fR or \fIreset\fR statement.
.ih
EXAMPLES
1. Test if a task exists.

.nf
	cl> if (deftask ("system.page"))
	>>>	print ("task page exists")
	>>> else
	>>>	print ("task page not found")
	task page exists
	cl>
.fi

2. Add the value of the named parameter into a sum, but only if the parameter
exists (the example is for a script).

.nf
	sum = 0
	for (i=0;  i <= 10;  i+=1) {
	    parname = "data" // i
	    if (defpar (parname)
		sum += parname
	}
.fi

3. Checked whether the 'IRAFARCH' environment variable is defined.

.nf
	cl> if (defvar("IRAFARCH")) {
	>>>    print ("IRAFARCH is " // envget("IRAFARCH")
	>>> }
	>>> ;
.fi
.ih
SEE ALSO
package, task, redefine, lparam
.endhelp
