## 8 Symbols

Function: GENSYM (&optional (x nil))

  Package:LISP

  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.

Function: KEYWORDP (x)

  Package:LISP

  Returns T if X is a symbol and it belongs to the KEYWORD package; NIL otherwise.

Function: REMPROP (symbol indicator)

  Package:LISP

  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.

Function: SYMBOL-PACKAGE (symbol)

  Package:LISP

  Returns the contents of the package cell of the symbol SYMBOL.

Variable: *PACKAGE*

  Package:LISP The current package.

Function: SHADOWING-IMPORT (symbols &optional (package *package*))

  Package:LISP

  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.

Macro: REMF

  Package:LISP

  Syntax:

      (remf place indicator)

  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.

Function: MAKUNBOUND (symbol)

  Package:LISP

  Makes empty the value slot of SYMBOL. Returns SYMBOL.

Function: USE-PACKAGE (packages-to-use &optional (package *package*))

  Package:LISP

  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.

Function: MAKE-SYMBOL (string)

  Package:LISP

  Creates and returns a new uninterned symbol whose print name is STRING.

Special Form: PSETQ

  Package:LISP

  Syntax:

      (psetq {var form}*)

  Similar to SETQ, but evaluates all FORMs first, and then assigns each value to the corresponding VAR. Returns NIL always.

Function: PACKAGE-USED-BY-LIST (package)

  Package:LISP

  Returns the list of packages that use PACKAGE.

Function: SYMBOLP (x)

  Package:LISP

  Returns T if X is a symbol; NIL otherwise.

Constant: NIL

  Package:LISP Holds NIL.

Function: SET (symbol value)

  Package:LISP

  Assigns the value of VALUE to the dynamic variable named by SYMBOL, and returns the value assigned.

Special Form: SETQ

  Package:LISP

  Syntax:

      (setq {var form}*)

  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.

Function: UNUSE-PACKAGE (packages-to-unuse &optional (package *package*))

  Package:LISP

  Removes PACKAGES-TO-UNUSE from the use list for PACKAGE.

Constant: T

  Package:LISP Holds T.

Function: PACKAGE-USE-LIST (package)

  Package:LISP

  Returns the list of packages used by PACKAGE.

Function: LIST-ALL-PACKAGES ()

  Package:LISP

  Returns a list of all existing packages.

Function: COPY-SYMBOL (symbol &optional (copy-props nil))

  Package:LISP

  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.

Function: SYMBOL-PLIST (symbol)

  Package:LISP

  Returns the property list of SYMBOL.

Function: SYMBOL-NAME (symbol)

  Package:LISP

  Returns the print name of the symbol SYMBOL.

Function: FIND-SYMBOL (name &optional (package *package*))

  Package:LISP

  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.

Function: SHADOW (symbols &optional (package *package*))

  Package:LISP

  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.

Function: FBOUNDP (symbol)

  Package:LISP

  Returns T if SYMBOL has a global function definition or if SYMBOL names a special form or a macro; NIL otherwise.

Function: MACRO-FUNCTION (symbol)

  Package:LISP

  If SYMBOL globally names a macro, then returns the expansion function. Returns NIL otherwise.

Function: IN-PACKAGE (package-name &key (nicknames nil) (use '(lisp)))

  Package:LISP

  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.

Function: MAKE-PACKAGE (package-name &key (nicknames nil) (use '(lisp)))

  Package:LISP

  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.

Function: PACKAGE-SHADOWING-SYMBOLS (package)

  Package:LISP

  Returns the list of symbols that have been declared as shadowing symbols in PACKAGE.

Function: INTERN (name &optional (package *package*))

  Package:LISP

  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.

Function: EXPORT (symbols &optional (package *package*))

  Package:LISP

  Makes SYMBOLS external symbols of PACKAGE. SYMBOLS must be a list of symbols or a symbol.

Function: PACKAGEP (x)

  Package:LISP

  Returns T if X is a package; NIL otherwise.

Function: SYMBOL-FUNCTION (symbol)

  Package:LISP

  Returns the current global function definition named by SYMBOL.

Function: SYMBOL-VALUE (symbol)

  Package:LISP

  Returns the current value of the dynamic (special) variable named by SYMBOL.

Function: BOUNDP (symbol)

  Package:LISP

  Returns T if the global variable named by SYMBOL has a value; NIL otherwise.

Function: DOCUMENTATION (symbol doc-type)

  Package:LISP

  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.

Function: GENTEMP (&optional (prefix "t") (package *package*))

  Package:LISP

  Creates a new symbol interned in the package PACKAGE with the given PREFIX.

Function: RENAME-PACKAGE (package new-name &optional (new-nicknames nil))

  Package:LISP

  Replaces the old name and nicknames of PACKAGE with NEW-NAME and NEW-NICKNAMES.

Function: UNINTERN (symbol &optional (package *package*))

  Package:LISP

  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.

Function: UNEXPORT (symbols &optional (package *package*))

  Package:LISP

  Makes SYMBOLS no longer accessible as external symbols in PACKAGE. SYMBOLS must be a list of symbols or a symbol.

Function: PACKAGE-NICKNAMES (package)

  Package:LISP

  Returns as a list the nickname strings for the specified PACKAGE.

Function: IMPORT (symbols &optional (package *package*))

  Package:LISP

  Makes SYMBOLS internal symbols of PACKAGE. SYMBOLS must be a list of symbols or a symbol.

Function: GET (symbol indicator &optional (default nil))

  Package:LISP

  Looks on the property list of SYMBOL for the specified INDICATOR. If this is found, returns the associated value. Otherwise, returns DEFAULT.

Function: FIND-ALL-SYMBOLS (string-or-symbol)

  Package:LISP

  Returns a list of all symbols that have the specified name.

Function: FMAKUNBOUND (symbol)

  Package:LISP

  Discards the global function definition named by SYMBOL. Returns SYMBOL.

Function: PACKAGE-NAME (package)

  Package:LISP

  Returns the string that names the specified PACKAGE.

Function: FIND-PACKAGE (name)

  Package:LISP

  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.

Function: APROPOS-LIST (string &optional (package nil))

  Package:LISP

  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.