2

私はちょうどスキーム (mit-scheme) をいじり回しており、「+」が「-」演算子と同等の手順の記号になるように、環境を変更する方法を見つけたところです。

(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」に関連付けられた事前定義された環境です。

4

1 に答える 1

3

トップレベル環境に関する関連する MIT スキームのドキュメント ページは有益です。既存のトップレベル環境を拡張する ( を使用extend-top-level-environment) か、新しいトップレベル環境をゼロから作成する ( を使用make-top-level-environment) ことができます。

ただし、最も些細な式以外を評価するには、 or のいずれsystem-global-environmentかを拡張することが有益な場合がありますuser-initial-environment(cf 13.2: 環境変数) 。

于 2011-08-18T17:22:23.607 に答える