CLCS
Function

set

set symbol valuevalue

Arguments and Values

symbola symbol.
valuean object.

Description

set changes the contents of the value cell of symbol to the given value.

(set symbol value) ≡ (setf (symbol-value symbol) value)

Examples

 (setf (symbol-value 'n) 1) ⇒  1
 (set 'n 2) ⇒  2
 (symbol-value 'n) ⇒  2
 (let ((n 3))
   (declare (special n))
   (setq n (+ n 1))
   (setf (symbol-value 'n) (* n 10))
   (set 'n (+ (symbol-value 'n) n))
   n) ⇒  80
 n ⇒  2
 (let ((n 3))
   (setq n (+ n 1))
   (setf (symbol-value 'n) (* n 10))
   (set 'n (+ (symbol-value 'n) n))
   n) ⇒  4
 n ⇒  44
 (defvar *n* 2)
 (let ((*n* 3))
   (setq *n* (+ *n* 1))
   (setf (symbol-value '*n*) (* *n* 10))
   (set '*n* (+ (symbol-value '*n*) *n*))
   *n*) ⇒  80
  *n* ⇒  2
 (defvar *even-count* 0) ⇒  *EVEN-COUNT*
 (defvar *odd-count* 0) ⇒  *ODD-COUNT*
 (defun tally-list (list)
   (dolist (element list)
     (set (if (evenp element) '*even-count* '*odd-count*)
          (+ element (if (evenp element) *even-count* *odd-count*)))))
 (tally-list '(1 9 4 3 2 7)) ⇒  NIL
 *even-count* ⇒  6
 *odd-count* ⇒  20

Side Effects

The value of symbol is changed.

See Also

setq, progv, symbol-value

Notes

The function set is deprecated.

set cannot change the value of a lexical variable.