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

| ANSI Common Lisp 10 Symbols 10.2 Dictionary of Symbols
10.2.10 symbol-function | Accessor
  Syntax: symbol-function symbol contents (setf (symbol-function symbol) new-contents) Arguments and Values: symbol - a symbol. contents - If the symbol is globally defined as a macro or a special operator, an object of implementation-dependent nature and identity is returned. If the symbol is not globally defined as either a macro or a special operator, and if the symbol is fbound, a function object is returned. new-contents - a function. Description: Accesses the symbol's function cell. Examples:
       (symbol-function 'car)  #<FUNCTION CAR>
       (symbol-function 'twice) is an error   ;because TWICE isn't defined.
       (defun twice (n) (* n 2))   TWICE
       (symbol-function 'twice)  #<FUNCTION TWICE>
       (list (twice 3)
             (funcall (function twice) 3)
             (funcall (symbol-function 'twice) 3))
       (6 6 6)
       (flet ((twice (x) (list x x)))
         (list (twice 3)
               (funcall (function twice) 3)
               (funcall (symbol-function 'twice) 3)))
       ((3 3) (3 3) 6)
       (setf (symbol-function 'twice) #'(lambda (x) (list x x)))
       #<FUNCTION anonymous>
       (list (twice 3)
             (funcall (function twice) 3)
             (funcall (symbol-function 'twice) 3))
       ((3 3) (3 3) (3 3))
       (fboundp 'defun)  true
       (symbol-function 'defun)
       implementation-dependent
       (functionp (symbol-function 'defun))
       implementation-dependent
       (defun symbol-function-or-nil (symbol)
         (if (and (fboundp symbol)
                  (not (macro-function symbol))
                  (not (special-operator-p symbol)))
             (symbol-function symbol)
             nil))   SYMBOL-FUNCTION-OR-NIL
       (symbol-function-or-nil 'car)  #<FUNCTION CAR>
       (symbol-function-or-nil 'defun)   NIL
  Affected By: defun Exceptional Situations: Should signal an error of type type-error if symbol is not a symbol. Should signal undefined-function if symbol is not fbound and an attempt is made to read its definition. (No such error is signaled on an attempt to write its definition.) See Also: fboundp, fmakunbound, macro-function, special-operator-p Notes: symbol-function cannot access the value of a lexical function name produced by flet or labels; it can access only the global function value. setf may be used with symbol-function to replace a global function definition when the symbol's function definition does not represent a special operator.
      (symbol-function symbol) ==(fdefinition symbol)
However, fdefinition accepts arguments other than just symbols. Allegro CL Implementation Details: None.

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