Я просто взломал Scheme (mit-схема), и я только что понял, как вы меняете среду, так что «+» становится символом для эквивалентной процедуры оператора «-».
Пример
(environment-define user-initial-environment '+ -)
(eval (+ 3 2) user-initial-environment)
=> 1
Мне просто интересно, существует ли простой способ работать со средами как с переменными, поэтому, когда я вводю среду в eval, вот так
(eval <exp> user-initial-environment)
Мне не нужно использовать 'user-initial-environment'. Так что я могу «играть» с различными средами для функции.
(eval <exp> env)
Где env - это некоторая предопределенная среда, присоединенная к моей переменной 'env'.