[LISPWORKS][Common Lisp HyperSpec (TM)] [Previous][Up][Next]


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:


[Starting Points][Contents][Index][Symbols][Glossary][Issues]
Copyright 1996-2005, LispWorks Ltd. All rights reserved.

AltStyle によって変換されたページ (->オリジナル) /