Powiedzmy mam specjalną var:eval formularz powinien ocenić daną formę w null środowiska leksykalnego, nie rozumiem co się spodziewać
(defvar x 20)
potem wykonaj następujące czynności:
(let ((x 1)) (eval '(+ x 1))
który ocenia na 2.
Według CLHS, eval "Ocenia formę w bieżącym dynamicznym środowisku i środowisku leksykalnym o zerowym znaczeniu". Tak więc, spodziewałbym się uzyskać 21 zamiast 2.
Czy brakuje mi czegoś?
Teraz, jeśli nie mam wiążącą dla symbolu y dynamiczny, oceniając
(let ((y 1)) (eval '(+ y 1))
mam warunek: „Zmienna Y jest nieograniczony”, co ma sens, ponieważ nie ma wiążących dla y dynamiczny.
Uwaga: Używam SBCL 1.0.57
wdzięczni za pomoc z góry!
To bardzo pomaga! Doceniam twoją pomoc bardzo! – Svarog