
<A NAME=IDENTIFIER>

<TITLE>IDENTIFIER</TITLE></A>
<b><a href=r37_idx.html>INDEX</a></b><p><p>



<B>IDENTIFIER</B> _ _ _  _ _ _  _ _ _  _ _ _ <B>type</B><P>
<P>
 
Identifiers in REDUCE consist of one or more alphanumeric characters, of 
which the first must be alphabetical. The maximum number of characters 
allowed is system dependent, but is usually over 100. However, printing 
is simplified if they are kept under 25 characters. 
<P>
<P>
You can also use special characters in your identifiers, but each must be 
preceded by an exclamation point <em>!</em> as an escape character. Useful 
special characters are <em> # $ % ^ &amp; * - + = ? &lt; &gt; ~ | / !</em> and 
the space. Note that the use of the exclamation point as a special 
character requires a second exclamation point as an escape character. 
The underscore <em>_</em> is special in this regard. It must be preceded 
by an escape character in the first position in an identifier, but is 
treated like a normal letter within an identifier. 
<P>
<P>
Other characters, such as <em>( ) # ; ` ' &quot;</em> can also be used if 
preceded by a <em>!</em>, but as they have special meanings to the Lisp 
reader it is best to avoid them to avoid confusion. 
<P>
<P>
Many system identifiers have * before or after their names, or - between 
words. If you accidentally pick one of these names for your own identifier, 
it could have disastrous effects. For this reason it is wise not to include 
* or - anywhere in your identifiers. 
<P>
<P>
You will notice that REDUCE does not use the escape characters when it prints 
identifiers containing special characters; however, you still must use them 
when you refer to these identifiers. Be careful when editing statements 
containing escaped special characters to treat the character and its escape 
as an inseparable pair. 
<P>
<P>
Identifiers are used for variable names, labels for <em>go to</em> statements, 
and names of arrays, matrices, operators, and procedures. Once an identifier is 

used as a matrix, array, scalar or operator identifier, it may not be used 
again as a matrix, array or operator. An operator or array identifier may 
later be used as a scalar without problems, but a matrix identifier cannot be 
used as a scalar. All procedures are entered into the system as operators, so 
the name of a procedure may not be used as a matrix, array, or operator 
identifier either. 
 <P>
<P>
