Next: , Previous: symbol-plist, Up: Symbols Dictionary



10.2.14 symbol-value [Accessor]

symbol-value symbol => value

(setf ( symbol-value symbol) new-value)

Arguments and Values::

symbol—a symbol that must have a value.

value, new-value—an object.

Description::

Accesses the symbol's value cell.

Examples::
      (setf (symbol-value 'a) 1) =>  1
      (symbol-value 'a) =>  1
      ;; SYMBOL-VALUE cannot see lexical variables.
      (let ((a 2)) (symbol-value 'a)) =>  1
      (let ((a 2)) (setq a 3) (symbol-value 'a)) =>  1
      ;; SYMBOL-VALUE can see dynamic variables.
      (let ((a 2))
        (declare (special a))
        (symbol-value 'a)) =>  2
      (let ((a 2))
        (declare (special a))
        (setq a 3)
        (symbol-value 'a)) =>  3
      (let ((a 2))
        (setf (symbol-value 'a) 3)
        a) =>  2
      a =>  3
      (symbol-value 'a) =>  3
      (let ((a 4))
        (declare (special a))
        (let ((b (symbol-value 'a)))
          (setf (symbol-value 'a) 5)
          (values a b))) =>  5, 4
      a =>  3
      (symbol-value :any-keyword) =>  :ANY-KEYWORD
      (symbol-value 'nil) =>  NIL
      (symbol-value '()) =>  NIL
      ;; The precision of this next one is implementation-dependent.
      (symbol-value 'pi) =>  3.141592653589793d0
Affected By::

makunbound, set, setq

Exceptional Situations::

Should signal an error of type type-error if symbol is not a symbol.

Should signal unbound-variable if symbol is unbound and an attempt is made to read its value. (No such error is signaled on an attempt to write its value.)

See Also::

boundp , makunbound , set , setq

Notes::

symbol-value can be used to get the value of a constant variable. symbol-value cannot access the value of a lexical variable.