ToC | DocOverview | CGDoc | RelNotes | Index | PermutedIndex
| Allegro CL

| 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.

© Franz Inc. All Rights Reserved - File last updated 2022-07-25