.NH 1
Special Functions
.NH 2
Quad Functions
.PP
Quad functions are special operators
that perform tasks which are
closer to the system level,
but are accessible within \*a functins.
There are many available quad functions
in \*u \*a,
but only two are probably of interest
to you at this time.
The interested user is referred to
Appendix C for a complete list.
.IP "\*(qdrun xxx" 14
This function can be used to execute
a \*u process from inside an \*a function.
The variable ``xxx'' should be a character
vector containing the command
to be executed by the \*u
shell (command program).
For example,
to run the ``who'' program,
the expression might be:
.sp
	\*(qdrun \'who\'
.sp
	<or, using a variable>
.sp
	x { \'who\'
.br
	\*(qdrun x
.sp
Note that any output generated by
the program run by ``\*(qdrun'' is
.I not
written to a script file if ``)script''
was used.
.IP "\*(qdcr xxx" 14
This quad function is a standard
\*a quad function.
The argument ``xxx'' should be
a character vector containing
the name of an \*a function
which exists in the internal workspace.
``\*(qdcr'' will return a
character array containing the
function definition in ASCII.
This provides
a very convenient way
to get the
listing of an \*a function.
For example,
if you want to define
the array ``fnlist'' to
be the function definition
of the function ``xyz'',
you can say:
.sp
	fnlist { \*(qdcr \'xyz\'
.sp
or, equivalently,
.sp
	fnname { \'xyz\'
.br
	fnlist { \*(qdcr fnname
.sp
Another possible use of
``\*(qdcr'' is to list a function
on the terminal without
having to use ``)editf''.
(As we discussed earlier,
when an error occurs
you cannot edit a suspended
function without using ``)reset''
first,
and ``)reset'' gets rid of
the current state of \*a.)
However,
the ``)list'' system command
is far more efficient
for this purpose
and is therefore strongly recommended.
.NH 2
I-Beam Functions
.PP
The I-beam function in \*u \*a is a method
of obtaining system parameters.
The available I-beams are listed in
Appendix D
for the interested user;
they are not generally required
for the average \*a session.
