The 'set' function evaluates 'symbol' and sets 'expr' as it's value. If the 'symbol' value is quoted via the quote special form or read-macro expansion, the 'symbol' is not evaluated. 'set' returns the value from 'expr' as it's result.
(set 'a 2)            ; sets symbol A to value 2
(set 'value a)        ; sets symbol VALUE to value 2
(print value)         ; show the value - prints 2
(set 'name 'myvar)    ; set symbol NAME to value MYVAR
(set name 12345)      ; set symbol which is the value
                      ;   of NAME (MYVAR) to 12345
(print name)          ; prints MYVAR
(print myvar)         ; prints 12345
(set notsymbol 1)     ; error: unbound variable
(set name notvalue)   ; error: unbound variable
See the
set
function in the