<html lang="en"> <head> <title>Symbols - GCL SI Manual</title> <meta http-equiv="Content-Type" content="text/html"> <meta name="description" content="GCL SI Manual"> <meta name="generator" content="makeinfo 4.13"> <link title="Top" rel="start" href="index.html#Top"> <link rel="prev" href="Compilation.html#Compilation" title="Compilation"> <link rel="next" href="Operating-System.html#Operating-System" title="Operating System"> <link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> <meta http-equiv="Content-Style-Type" content="text/css"> <style type="text/css"><!-- pre.display { font-family:inherit } pre.format { font-family:inherit } pre.smalldisplay { font-family:inherit; font-size:smaller } pre.smallformat { font-family:inherit; font-size:smaller } pre.smallexample { font-size:smaller } pre.smalllisp { font-size:smaller } span.sc { font-variant:small-caps } span.roman { font-family:serif; font-weight:normal; } span.sansserif { font-family:sans-serif; font-weight:normal; } --></style> </head> <body> <div class="node"> <a name="Symbols"></a> <p> Next: <a rel="next" accesskey="n" href="Operating-System.html#Operating-System">Operating System</a>, Previous: <a rel="previous" accesskey="p" href="Compilation.html#Compilation">Compilation</a>, Up: <a rel="up" accesskey="u" href="index.html#Top">Top</a> <hr> </div> <h2 class="chapter">8 Symbols</h2> <div class="defun"> — Function: <b>GENSYM</b> (<var>&optional </var>(<var>x nil</var>))<var><a name="index-GENSYM-610"></a></var><br> <blockquote><p>Package:LISP <p>Creates and returns a new uninterned symbol whose name is a prefix string (defaults to "G"), followed by a decimal number. The number is incremented by each call to GENSYM. X, if an integer, resets the counter. If X is a string, it becomes the new prefix. </blockquote></div> <div class="defun"> — Function: <b>KEYWORDP</b> (<var>x</var>)<var><a name="index-KEYWORDP-611"></a></var><br> <blockquote><p>Package:LISP <p>Returns T if X is a symbol and it belongs to the KEYWORD package; NIL otherwise. </blockquote></div> <div class="defun"> — Function: <b>REMPROP</b> (<var>symbol indicator</var>)<var><a name="index-REMPROP-612"></a></var><br> <blockquote><p>Package:LISP <p>Look on property list of SYMBOL for property with specified INDICATOR. If found, splice this indicator and its value out of the plist, and return T. If not found, returns NIL with no side effects. </blockquote></div> <div class="defun"> — Function: <b>SYMBOL-PACKAGE</b> (<var>symbol</var>)<var><a name="index-SYMBOL_002dPACKAGE-613"></a></var><br> <blockquote><p>Package:LISP <p>Returns the contents of the package cell of the symbol SYMBOL. </blockquote></div> <div class="defun"> — Variable: <b>*PACKAGE*</b><var><a name="index-g_t_002aPACKAGE_002a-614"></a></var><br> <blockquote><p>Package:LISP The current package. </blockquote></div> <div class="defun"> — Function: <b>SHADOWING-IMPORT</b> (<var>symbols &optional </var>(<var>package *package*</var>))<var><a name="index-SHADOWING_002dIMPORT-615"></a></var><br> <blockquote><p>Package:LISP <p>Imports SYMBOLS into PACKAGE, disregarding any name conflict. If a symbol of the same name is already present, then it is uninterned. SYMBOLS must be a list of symbols or a symbol. </blockquote></div> <div class="defun"> — Macro: <b>REMF</b><var><a name="index-REMF-616"></a></var><br> <blockquote><p>Package:LISP <p>Syntax: <pre class="example"> (remf place indicator) </pre> <p>PLACE may be any place expression acceptable to SETF, and is expected to hold a property list or NIL. This list is destructively altered to remove the property specified by INDICATOR. Returns T if such a property was present; NIL otherwise. </blockquote></div> <div class="defun"> — Function: <b>MAKUNBOUND</b> (<var>symbol</var>)<var><a name="index-MAKUNBOUND-617"></a></var><br> <blockquote><p>Package:LISP <p>Makes empty the value slot of SYMBOL. Returns SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>USE-PACKAGE</b> (<var>packages-to-use &optional </var>(<var>package *package*</var>))<var><a name="index-USE_002dPACKAGE-618"></a></var><br> <blockquote><p>Package:LISP <p>Adds all packages in PACKAGE-TO-USE list to the use list for PACKAGE so that the external symbols of the used packages are available as internal symbols in PACKAGE. </blockquote></div> <div class="defun"> — Function: <b>MAKE-SYMBOL</b> (<var>string</var>)<var><a name="index-MAKE_002dSYMBOL-619"></a></var><br> <blockquote><p>Package:LISP <p>Creates and returns a new uninterned symbol whose print name is STRING. </blockquote></div> <div class="defun"> — Special Form: <b>PSETQ</b><var><a name="index-PSETQ-620"></a></var><br> <blockquote><p>Package:LISP <p>Syntax: <pre class="example"> (psetq {var form}*) </pre> <p>Similar to SETQ, but evaluates all FORMs first, and then assigns each value to the corresponding VAR. Returns NIL always. </blockquote></div> <div class="defun"> — Function: <b>PACKAGE-USED-BY-LIST</b> (<var>package</var>)<var><a name="index-PACKAGE_002dUSED_002dBY_002dLIST-621"></a></var><br> <blockquote><p>Package:LISP <p>Returns the list of packages that use PACKAGE. </blockquote></div> <div class="defun"> — Function: <b>SYMBOLP</b> (<var>x</var>)<var><a name="index-SYMBOLP-622"></a></var><br> <blockquote><p>Package:LISP <p>Returns T if X is a symbol; NIL otherwise. </blockquote></div> <div class="defun"> — Constant: <b>NIL</b><var><a name="index-NIL-623"></a></var><br> <blockquote><p>Package:LISP Holds NIL. </blockquote></div> <div class="defun"> — Function: <b>SET</b> (<var>symbol value</var>)<var><a name="index-SET-624"></a></var><br> <blockquote><p>Package:LISP <p>Assigns the value of VALUE to the dynamic variable named by SYMBOL, and returns the value assigned. </blockquote></div> <div class="defun"> — Special Form: <b>SETQ</b><var><a name="index-SETQ-625"></a></var><br> <blockquote><p>Package:LISP <p>Syntax: <pre class="example"> (setq {var form}*) </pre> <p>VARs are not evaluated and must be symbols. Assigns the value of the first FORM to the first VAR, then assigns the value of the second FORM to the second VAR, and so on. Returns the last value assigned. </blockquote></div> <div class="defun"> — Function: <b>UNUSE-PACKAGE</b> (<var>packages-to-unuse &optional </var>(<var>package *package*</var>))<var><a name="index-UNUSE_002dPACKAGE-626"></a></var><br> <blockquote><p>Package:LISP <p>Removes PACKAGES-TO-UNUSE from the use list for PACKAGE. </blockquote></div> <div class="defun"> — Constant: <b>T</b><var><a name="index-T-627"></a></var><br> <blockquote><p>Package:LISP Holds T. </blockquote></div> <div class="defun"> — Function: <b>PACKAGE-USE-LIST</b> (<var>package</var>)<var><a name="index-PACKAGE_002dUSE_002dLIST-628"></a></var><br> <blockquote><p>Package:LISP <p>Returns the list of packages used by PACKAGE. </blockquote></div> <div class="defun"> — Function: <b>LIST-ALL-PACKAGES</b> ()<var><a name="index-LIST_002dALL_002dPACKAGES-629"></a></var><br> <blockquote><p>Package:LISP <p>Returns a list of all existing packages. </blockquote></div> <div class="defun"> — Function: <b>COPY-SYMBOL</b> (<var>symbol &optional </var>(<var>copy-props nil</var>))<var><a name="index-COPY_002dSYMBOL-630"></a></var><br> <blockquote><p>Package:LISP <p>Returns a new uninterned symbol with the same print name as SYMBOL. If COPY-PROPS is NIL, the function, the variable, and the property slots of the new symbol have no value. Otherwise, these slots are given the values of the corresponding slots of SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>SYMBOL-PLIST</b> (<var>symbol</var>)<var><a name="index-SYMBOL_002dPLIST-631"></a></var><br> <blockquote><p>Package:LISP <p>Returns the property list of SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>SYMBOL-NAME</b> (<var>symbol</var>)<var><a name="index-SYMBOL_002dNAME-632"></a></var><br> <blockquote><p>Package:LISP <p>Returns the print name of the symbol SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>FIND-SYMBOL</b> (<var>name &optional </var>(<var>package *package*</var>))<var><a name="index-FIND_002dSYMBOL-633"></a></var><br> <blockquote><p>Package:LISP <p>Returns the symbol named NAME in PACKAGE. If such a symbol is found, then the second value is :INTERN, :EXTERNAL, or :INHERITED to indicate how the symbol is accessible. If no symbol is found then both values are NIL. </blockquote></div> <div class="defun"> — Function: <b>SHADOW</b> (<var>symbols &optional </var>(<var>package *package*</var>))<var><a name="index-SHADOW-634"></a></var><br> <blockquote><p>Package:LISP <p>Creates an internal symbol in PACKAGE with the same name as each of the specified SYMBOLS. SYMBOLS must be a list of symbols or a symbol. </blockquote></div> <div class="defun"> — Function: <b>FBOUNDP</b> (<var>symbol</var>)<var><a name="index-FBOUNDP-635"></a></var><br> <blockquote><p>Package:LISP <p>Returns T if SYMBOL has a global function definition or if SYMBOL names a special form or a macro; NIL otherwise. </blockquote></div> <div class="defun"> — Function: <b>MACRO-FUNCTION</b> (<var>symbol</var>)<var><a name="index-MACRO_002dFUNCTION-636"></a></var><br> <blockquote><p>Package:LISP <p>If SYMBOL globally names a macro, then returns the expansion function. Returns NIL otherwise. </blockquote></div> <div class="defun"> — Function: <b>IN-PACKAGE</b> (<var>package-name &key </var>(<var>nicknames nil</var>) (<var>use '</var>(<var>lisp</var>)))<var><a name="index-IN_002dPACKAGE-637"></a></var><br> <blockquote><p>Package:LISP <p>Sets *PACKAGE* to the package with PACKAGE-NAME, creating the package if it does not exist. If the package already exists then it is modified to agree with USE and NICKNAMES arguments. Any new nicknames are added without removing any old ones not specified. If any package in the USE list is not currently used, then it is added to the use list. </blockquote></div> <div class="defun"> — Function: <b>MAKE-PACKAGE</b> (<var>package-name &key </var>(<var>nicknames nil</var>) (<var>use '</var>(<var>lisp</var>)))<var><a name="index-MAKE_002dPACKAGE-638"></a></var><br> <blockquote><p>Package:LISP <p>Makes a new package having the specified PACKAGE-NAME and NICKNAMES. The package will inherit all external symbols from each package in the USE list. </blockquote></div> <div class="defun"> — Function: <b>PACKAGE-SHADOWING-SYMBOLS</b> (<var>package</var>)<var><a name="index-PACKAGE_002dSHADOWING_002dSYMBOLS-639"></a></var><br> <blockquote><p>Package:LISP <p>Returns the list of symbols that have been declared as shadowing symbols in PACKAGE. </blockquote></div> <div class="defun"> — Function: <b>INTERN</b> (<var>name &optional </var>(<var>package *package*</var>))<var><a name="index-INTERN-640"></a></var><br> <blockquote><p>Package:LISP <p>Returns a symbol having the specified name, creating it if necessary. Returns as the second value one of the symbols :INTERNAL, :EXTERNAL, :INHERITED, and NIL. </blockquote></div> <div class="defun"> — Function: <b>EXPORT</b> (<var>symbols &optional </var>(<var>package *package*</var>))<var><a name="index-EXPORT-641"></a></var><br> <blockquote><p>Package:LISP <p>Makes SYMBOLS external symbols of PACKAGE. SYMBOLS must be a list of symbols or a symbol. </blockquote></div> <div class="defun"> — Function: <b>PACKAGEP</b> (<var>x</var>)<var><a name="index-PACKAGEP-642"></a></var><br> <blockquote><p>Package:LISP <p>Returns T if X is a package; NIL otherwise. </blockquote></div> <div class="defun"> — Function: <b>SYMBOL-FUNCTION</b> (<var>symbol</var>)<var><a name="index-SYMBOL_002dFUNCTION-643"></a></var><br> <blockquote><p>Package:LISP <p>Returns the current global function definition named by SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>SYMBOL-VALUE</b> (<var>symbol</var>)<var><a name="index-SYMBOL_002dVALUE-644"></a></var><br> <blockquote><p>Package:LISP <p>Returns the current value of the dynamic (special) variable named by SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>BOUNDP</b> (<var>symbol</var>)<var><a name="index-BOUNDP-645"></a></var><br> <blockquote><p>Package:LISP <p>Returns T if the global variable named by SYMBOL has a value; NIL otherwise. </blockquote></div> <div class="defun"> — Function: <b>DOCUMENTATION</b> (<var>symbol doc-type</var>)<var><a name="index-DOCUMENTATION-646"></a></var><br> <blockquote><p>Package:LISP <p>Returns the doc-string of DOC-TYPE for SYMBOL; NIL if none exists. Possible doc-types are: FUNCTION (special forms, macros, and functions) VARIABLE (dynamic variables, including constants) TYPE (types defined by DEFTYPE) STRUCTURE (structures defined by DEFSTRUCT) SETF (SETF methods defined by DEFSETF, DEFINE-SETF-METHOD, and DEFINE-MODIFY-MACRO) All built-in special forms, macros, functions, and variables have their doc-strings. </blockquote></div> <div class="defun"> — Function: <b>GENTEMP</b> (<var>&optional </var>(<var>prefix "t"</var>) (<var>package *package*</var>))<var><a name="index-GENTEMP-647"></a></var><br> <blockquote><p>Package:LISP <p>Creates a new symbol interned in the package PACKAGE with the given PREFIX. </blockquote></div> <div class="defun"> — Function: <b>RENAME-PACKAGE</b> (<var>package new-name &optional </var>(<var>new-nicknames nil</var>))<var><a name="index-RENAME_002dPACKAGE-648"></a></var><br> <blockquote><p>Package:LISP <p>Replaces the old name and nicknames of PACKAGE with NEW-NAME and NEW-NICKNAMES. </blockquote></div> <div class="defun"> — Function: <b>UNINTERN</b> (<var>symbol &optional </var>(<var>package *package*</var>))<var><a name="index-UNINTERN-649"></a></var><br> <blockquote><p>Package:LISP <p>Makes SYMBOL no longer present in PACKAGE. Returns T if SYMBOL was present; NIL otherwise. If PACKAGE is the home package of SYMBOL, then makes SYMBOL uninterned. </blockquote></div> <div class="defun"> — Function: <b>UNEXPORT</b> (<var>symbols &optional </var>(<var>package *package*</var>))<var><a name="index-UNEXPORT-650"></a></var><br> <blockquote><p>Package:LISP <p>Makes SYMBOLS no longer accessible as external symbols in PACKAGE. SYMBOLS must be a list of symbols or a symbol. </blockquote></div> <div class="defun"> — Function: <b>PACKAGE-NICKNAMES</b> (<var>package</var>)<var><a name="index-PACKAGE_002dNICKNAMES-651"></a></var><br> <blockquote><p>Package:LISP <p>Returns as a list the nickname strings for the specified PACKAGE. </blockquote></div> <div class="defun"> — Function: <b>IMPORT</b> (<var>symbols &optional </var>(<var>package *package*</var>))<var><a name="index-IMPORT-652"></a></var><br> <blockquote><p>Package:LISP <p>Makes SYMBOLS internal symbols of PACKAGE. SYMBOLS must be a list of symbols or a symbol. </blockquote></div> <div class="defun"> — Function: <b>GET</b> (<var>symbol indicator &optional </var>(<var>default nil</var>))<var><a name="index-GET-653"></a></var><br> <blockquote><p>Package:LISP <p>Looks on the property list of SYMBOL for the specified INDICATOR. If this is found, returns the associated value. Otherwise, returns DEFAULT. </blockquote></div> <div class="defun"> — Function: <b>FIND-ALL-SYMBOLS</b> (<var>string-or-symbol</var>)<var><a name="index-FIND_002dALL_002dSYMBOLS-654"></a></var><br> <blockquote><p>Package:LISP <p>Returns a list of all symbols that have the specified name. </blockquote></div> <div class="defun"> — Function: <b>FMAKUNBOUND</b> (<var>symbol</var>)<var><a name="index-FMAKUNBOUND-655"></a></var><br> <blockquote><p>Package:LISP <p>Discards the global function definition named by SYMBOL. Returns SYMBOL. </blockquote></div> <div class="defun"> — Function: <b>PACKAGE-NAME</b> (<var>package</var>)<var><a name="index-PACKAGE_002dNAME-656"></a></var><br> <blockquote><p>Package:LISP <p>Returns the string that names the specified PACKAGE. </blockquote></div> <div class="defun"> — Function: <b>FIND-PACKAGE</b> (<var>name</var>)<var><a name="index-FIND_002dPACKAGE-657"></a></var><br> <blockquote><p>Package:LISP <p>Returns the specified package if it already exists; NIL otherwise. NAME may be a string that is the name or nickname of the package. NAME may also be a symbol, in which case the symbol's print name is used. </blockquote></div> <div class="defun"> — Function: <b>APROPOS-LIST</b> (<var>string &optional </var>(<var>package nil</var>))<var><a name="index-APROPOS_002dLIST-658"></a></var><br> <blockquote><p>Package:LISP <p>Returns, as a list, all symbols whose print-names contain STRING as substring. If PACKAGE is non-NIL, then only the specified package is searched. </blockquote></div> </body></html>