Como a forma eval deveria avaliar uma determinada forma em um ambiente léxico nulo, eu não entendo o que eu espero

Digamos que eu tenha um var especial:

(defvar x 20)

então eu faço o seguinte:

(let ((x 1)) (eval '(+ x 1))

que avalia a 2.

De acordo com o CLHS, eval "Avalia a forma no ambiente dinâmico atual e no ambiente léxico nulo". Então, eu esperaria obter 21 em vez de 2.

Estou esquecendo de algo?

Agora, se eu não tenho ligação dinâmica para o símbolo y, avaliando

(let ((y 1)) (eval '(+ y 1))

Eu obtenho condição: "A variável Y é desvinculada", o que faz sentido, já que não há ligação dinâmica para y.

Nota: estou usando o SBCL 1.0.57

Aprecie sua ajuda com antecedência!

questionAnswers(2)

yourAnswerToTheQuestion