Let
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
XML 形式
<Let>
<Env> environment.... </Env>...
<Sub> substution.... </Sub>...
</Let>
引数
<Env> environemnt.... </Env> [0+] 多重継承用環境のリスト
environemnt [1+] XLT_ENV
<Sub> substitution.... </Sub> [0+] ローカル変数リスト
substitution [1+] XLT_PAIR 変数名をシンボルとし、バインドする値を内部要素とする要素。
属性
評価形式
normal
所属エージェント
xl
所属環境
Env0
説明
環境 を一つ生成します。そのとき、Env要素を指定しない場合は、その直前のカレント環境を親環境とします。もし、Env要素を指定した場合、その中で定義される環境をカレント環境のペア環境を生成しこれを親とした子環境生成します。 この子環境の中で、Subで定義したシンボルにデータをバインドします。Env,Sub量要素とは異なる内部要素を発見すると、その時点から、先の要素を評価して行きます。最後に評価した値を戻り値とします。書式例としては以下の通り。
<Let>
<Env> ^TargetEnv ^SomeEnv</Env>
<Sub>
<t> (+ 1 1)</t>
<u> (* 2 3)</u>
</Sub>
(SomeFunction t u)
</Let>
Envで実現する子環境は、 図(環境の継承関係)に示す通りである。
図 環境の継承関係
|
また、変数t,uには、それぞれ、2,6がバインドされる。SomeFunctionにはそれらの値が渡される。SomeFunctionは、先に示した、、 図(環境の継承関係)におけるnext-environmentを起点として評価され、その戻り値が、Letの戻り値ともなる。
▲ページトップへ戻る
戻り値
最後に評価した式の戻り値
エラー
-
XLE_SEMANTICS_INV_FORMAT
-
"symbol is required"
最初にあたった リスト の先頭が シンボル でなかった。
-
"environment type is required"
Env要素の内部要素が、 XLT_ENV でなかった。
-
"substitution pair is required"
"symbol is required"
Sub要素の中身が、シンボル名から始まる要素で無かった。
参考
バグ
▲ページトップへ戻る
|