cl: Creating Symbols

 
 7.2 Creating Symbols
 ====================
 
 These functions create unique symbols, typically for use as temporary
 variables.
 
  -- Function: cl-gensym &optional x
      This function creates a new, uninterned symbol (using
      ‘make-symbol’) with a unique name.  (The name of an uninterned
      symbol is relevant only if the symbol is printed.)  By default, the
      name is generated from an increasing sequence of numbers, ‘G1000’,
      ‘G1001’, ‘G1002’, etc.  If the optional argument X is a string,
      that string is used as a prefix instead of ‘G’.  Uninterned symbols
      are used in macro expansions for temporary variables, to ensure
      that their names will not conflict with “real” variables in the
      user’s code.
 
      (Internally, the variable ‘cl--gensym-counter’ holds the counter
      used to generate names.  It is initialized with zero and
      incremented after each use.)
 
  -- Function: cl-gentemp &optional x
      This function is like ‘cl-gensym’, except that it produces a new
      _interned_ symbol.  If the symbol that is generated already exists,
      the function keeps incrementing the counter and trying again until
      a new symbol is generated.
 
    This package automatically creates all keywords that are called for
 by ‘&key’ argument specifiers, and discourages the use of keywords as
 data unrelated to keyword arguments, so the related function
 ‘defkeyword’ (to create self-quoting keyword symbols) is not provided.