2

我只是在使用 Scheme (mit-scheme),我刚刚弄清楚了如何更改环境,因此“+”成为“-”运算符的等效过程的符号。

例子

(environment-define user-initial-environment '+ -)
(eval (+ 3 2) user-initial-environment)
=> 1

我只是想知道是否有一种简单的方法可以将环境作为变量处理,所以当我将环境输入到 eval 中时,就像这样

(eval <exp> user-initial-environment) 

我不必使用“用户初始环境”。所以我可以在不同的环境中“玩”一个功能。

(eval <exp> env) 

其中 env 是附加到我的变量“env”的一些预定义环境。

4

1 回答 1

3

有关顶级环境的相关 MIT Scheme 文档页面可能具有指导意义——您可以扩展现有的顶级环境(使用extend-top-level-environment)或从头开始创建一个新环境(使用make-top-level-environment)。

但是,对于除了最琐碎的表达式之外的任何内容,扩展system-global-environmentuser-initial-environment(参见13.2:环境变量)可能是有益的

于 2011-08-18T17:22:23.607 回答