Property Lists Symbols
These functions create unique symbols, typically for use as temporary variables.
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, `
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.
gensymnames. It is incremented after each use by
gensym. In Common Lisp this is initialized with 0, but this package initializes it with a random (time-dependent) value to avoid trouble when two files that each used
gensymin their compilation are loaded together. (Uninterned symbols become interned when the compiler writes them out to a file and the Emacs loader loads them, so their names have to be treated a bit more carefully than in Common Lisp where uninterned symbols remain uninterned after loading.)
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.
The Quiroz `
cl.el' package also defined a
form for creating self-quoting keyword symbols. 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
defkeyword form has been discontinued.