User Tools


Function SET

Syntax

  • set symbol valuevalue

Arguments and Values

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)) (setf n (+ n 1)) (setf (symbol-value 'n) (* n 10)) (set 'n (+ (symbol-value 'n) n)) n)

80

n

2

(let ((n 3)) (defparameter n (1+ n)) (setf (symbol-value 'n) (* n 10)) (set 'n (+ (symbol-value 'n) n)) n)

4

n

44

(defvar *n* 2)

*N*

(let ((*n* 3)) (defparameter *n* (1+ *n*)) (setf (symbol-value '*n*) (* *n* 10)) (set '*n* (+ (symbol-value '*n*) *n*))

  • n*) <r>80</r>

*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

(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

Notes

The function set is deprecated.

set cannot change the value of a lexical variable.

\issue{ARGUMENTS-UNDERSPECIFIED:SPECIFY}