CLHS: Function SET

#

Function SET

Syntax:

set symbol value => value

Arguments and Values:

symbol---a symbol.

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

Affected By: None.

Exceptional Situations: None.

See Also:

setq, progv, symbol-value

Notes:

The function set is deprecated.

set cannot change the value of a lexical variable.

The following X3J13 cleanup issue, not part of the specification, applies to this section:

- ARGUMENTS-UNDERSPECIFIED:SPECIFY

Copyright 1996-2005, LispWorks Ltd. All rights reserved.