7.2.127 setq

(setq SYM EXPR)

Bind the symbol SYM to the value of EXPR. SYM must be an unqualified symbol, i.e. not quoted, and literal: (setq "foo" bar) will not work. Likewise (setq (bar STUFF) foo) will also not work, even if (bar …) would evaluate to an unqualified symbol: varible names must be literals. Note that calling (setq SYM …) will alter the value of SYM within the current name-space: if SYM, e.g., is bound as local variable by a lambda, let or defun expression, then (setq SYM …) will change the value of the local variable, the global binding will remain unchanged. It is NOT possible to un-bind a symbol. However, subsequent (setq SYM …) invocations will re-bind SYM to another value and free the lisp-object previously bound to SYM. See (lambda …). See (defun …). See (let …).