Diciamo che ho una var speciale:modulo eval supposta per valutare una data forma in un ambiente lessicale nullo, non capisco quello che mi aspetto
(defvar x 20)
poi faccio la seguente:
(let ((x 1)) (eval '(+ x 1))
che restituisce 2.
Secondo CLHS, eval "elabora forma nell'ambiente dinamico corrente e l'ambiente lessicale nullo". Quindi, mi aspetterei di ottenere 21 invece di 2.
Mi manca qualcosa?
Ora se non hanno vincolante per simbolo y dinamica, valutando
(let ((y 1)) (eval '(+ y 1))
ottengo condizione: "La variabile Y è libero", che ha senso, dato che non v'è vincolante per y dinamico.
Nota: sto usando SBCL 1.0.57
Apprezzare il vostro aiuto in anticipo!
Questo aiuta molto! Apprezzo molto il tuo aiuto! – Svarog