Previous: Property Lists, Up: Symbols [Contents][Index]
These functions create unique symbols, typically for use as temporary variables.
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.)
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.