Result
著者: 森 洋久 / joshua@globalbase.org ※
プロトタイプ
LISP形式
( Result integer-exp exp)
XML 形式
<Result> integer-exp exp</Result>
引数
integer-exp [1] XLT_INTEGER
exp [1] 任意の型
属性
評価形式
interpreter
所属エージェント
xl
所属環境
Env1
説明
標準入力、あるは、ネットワークから入力など入力ストリームから入力された 関数の評価結果をResultで返す。integer-expはseq値 ( 行番号)、expは評価結果。
標準入力、あるは、ネットワークから入力など入力ストリームから入力された 関数の評価結果をResultで返す。integer-expはseq値、expは評価結果、これを 結果値と呼ぶ。そして、type-expはその型を表す。
入力ストリームから15行目に、
<If> (= a b)
<Then> .... </Then>
<Else> .... </Else>
</If>
と送り込んだとする。もし、強制的に15行目に固定したい場合は、
<seq no="15">
を送ってから、上記Ifを送る。
これに対応するResultの第2引数のinteger-exp は15となる。 expは関数の評価結果である。
たとえば、上述Ifの戻り値は次のように表現される。
<Result>15
(1.2 3)
</Result>
二つのインタープリタがつながっており、一方のストリーム出力が片方のストリ ーム入力となっている場合は、<Result>を受けたインタープリタはこれを評価し なければならない。<Result>を受けるインタープリタは、おそらくその前 に、 <Remote> や <Local> を発行していると思われる。 RemoteやLocalはseqをつけて関数を送り出して、その結果待ちをしている。 Resultはinteger-exp ( 評価しない) に対応するRemote/Local を探しだし、その Remote/Localへ結果値を受け渡す。
<Result>の評価結果は常にErrDontPrint。なぜならば、戻り値を出力す ると、二つのインタープリタの間で結果が永遠にループすることになるからで ある。
▲ページトップへ戻る
戻り値
なし。インタプリタのフロントエンドスレッドが値を横取りする。エラーも同様にしてなし。
エラー
参考
バグ
▲ページトップへ戻る
|