|
ANSI Common Lisp 10 Symbols 10.2 Dictionary of Symbols
10.2.6 copy-symbol |
Function |
- Syntax:
-
copy-symbol
symbol &optional copy-properties
new-symbol
- Arguments and Values:
-
symbol - a symbol.
copy-properties - a generalized boolean.
The default is false.
new-symbol - a fresh, uninterned symbol.
- Description:
-
copy-symbol returns a fresh, uninterned symbol,
the name of which is string= to and possibly the same as
the name of the given symbol.
If copy-properties is false,
the new-symbol is neither bound nor fbound
and has a null property list.
If copy-properties is true, then
the initial value of new-symbol is
the value of symbol,
the initial function definition of new-symbol is
the functional value of symbol,
and the property list of new-symbol is
a copy2 of the property list of symbol.
- Examples:
-
(setq fred 'fred-smith) FRED-SMITH
(setf (symbol-value fred) 3) 3
(setq fred-clone-1a (copy-symbol fred nil)) #:FRED-SMITH
(setq fred-clone-1b (copy-symbol fred nil)) #:FRED-SMITH
(setq fred-clone-2a (copy-symbol fred t)) #:FRED-SMITH
(setq fred-clone-2b (copy-symbol fred t)) #:FRED-SMITH
(eq fred fred-clone-1a) false
(eq fred-clone-1a fred-clone-1b) false
(eq fred-clone-2a fred-clone-2b) false
(eq fred-clone-1a fred-clone-2a) false
(symbol-value fred) 3
(boundp fred-clone-1a) false
(symbol-value fred-clone-2a) 3
(setf (symbol-value fred-clone-2a) 4) 4
(symbol-value fred) 3
(symbol-value fred-clone-2a) 4
(symbol-value fred-clone-2b) 3
(boundp fred-clone-1a) false
(setf (symbol-function fred) #'(lambda (x) x)) #<FUNCTION anonymous>
(fboundp fred) true
(fboundp fred-clone-1a) false
(fboundp fred-clone-2a) false
- Exceptional Situations:
-
Should signal an error of type type-error if symbol is not a symbol.
- See Also:
-
make-symbol
- Notes:
-
Implementors are encouraged not to copy the string
which is the symbol's name unnecessarily.
Unless there is a good reason to do so, the normal implementation
strategy is for the new-symbol's name to
be identical to the given symbol's name.
- Allegro CL Implementation Details:
-
None.
|