Я думаю, что это зависит от реализации, но в MIT Scheme вы можете очистить среду REPL с помощью:
1 ]=> (ge (make-top-level-environment))
Функция (ge [environment])
«Изменяет текущую среду цикла REP на [environment]».и функция make-top-level-environment
«возвращает вновь выделенную среду верхнего уровня».
Схема MIT имеет набор функций управления средой, которые вы можете просмотреть здесь
Я протестировал это в Mac OS X (10.6.7) с MIT Scheme 9.0.1, установленной через предварительно собранный двоичный файл с сайта GNU, со следующим сеансом REPL:
1 ]=> (define foo 1)
;Value: foo
1 ]=> foo
;Value: 1
1 ]=> (ge (make-top-level-environment))
;Value 13: #[environment 13]
1 ]=> foo
;Unbound variable: foo
;To continue, call RESTART with an option number:
; (RESTART 3) => Specify a value to use instead of foo.
; (RESTART 2) => Define foo to a given value.
; (RESTART 1) => Return to read-eval-print level 1.
2 error>
Я думаю, что разные реализацииу меня разные соглашения, но я не думаю, что есть что-то похожее на пакеты Common Lisp.Если вы не знакомы с MIT Scheme, вам следует проверить Racket и Dr Racket, которые являются хорошей IDE, которая может быть более мощной, чем обычный REPL в командной строке, и я думаю, что она имеет какую-то модульную систему.Ракетка - это собственный диалект схемы, поэтому в зависимости от того, что вы делаете, это может быть неуместно.(языковой модуль по умолчанию в Racket не совпадает со схемой MIT)
Я боролся со всем этим недавно (в последние несколько месяцев), когда искал Схему, которая могла бы запускать код из Lisp в SmallКусочки, в которых есть куча странных макросов.Гамбит оказался лучшей ставкой.Если у вас нет такой необходимости, посмотрите Ракетки.