# Function SET

### Syntax

• set symbol valuevalue

### 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.

None.

None.

### Notes

The function set is deprecated.

set cannot change the value of a lexical variable.

\issue{ARGUMENTS-UNDERSPECIFIED:SPECIFY}