* Схема
( R7RS ) не имеет стандартного способа удаления привязки верхнего уровня.
Если вы оцениваете несуществующую переменную, вы получите ошибку:
(eval 'a)
; => ERROR: undefined variable: a
Если вы определите его, переменная будет добавлена в среду верхнего уровня.
(define a 1)
(eval 'a)
; => 1
Начиная с этого момента, независимо от того, что вы делаете, вы не получите сообщение об ошибке, если получите доступ к переменной.
Если вы установите значение false, вы получите false:
(set! a #f)
(eval 'a)
; => #f
Даже если вы установите что-то неопределенное, маловероятно, что вы получите ошибку:
(set! a (if #f #t))
(eval 'a)
; =>
Но Схемы могут иметь нестандартный способ удаления привязки верхнего уровня. Схема MIT обеспечивает функцию unbind-variable
.