<function>
<fname property="Normal Order / LEVEL: 0">
Result
</fname>
<prototype>
LISP形式

(Result integer-exp exp)

XML 形式

<Result> integer-exp exp</Result>
</prototype>
<prototype>
C関数宣言

int cResult(int integer_exp,XLtype * exp);
</prototype>
<explanation>
標準入力、あるは、ネットワークから入力など入力ストリームから入力された関数の評価結果をResultで返す。integer-expは入力ストリームに送り込まれた関数の先頭の行番号、expは評価結果、これを結果値と呼ぶ。 

入力ストリームから15行目に、 

<pre>
<If> (= a b)
	<Then>	.... </Then>
	<Else>  .... </Else>
</If>
</pre>

これに対応するResultの第2引数のinteger-exp は15となる。 expは関数の評価結果である。 

たとえば、上述Ifの戻り値は次のように表現される。 

<pre>
<Result>15
	(1.2 3)
</Result>
</pre>

二つのインタープリタがつながっており、一方のストリーム出力が片方のストリーム入力となっている場合は、&lt;Result&gt;を受けたインタープリタはこれを評価する。&lt;Result&gt;を受けるインタープリタは、自身の出力ストリームに向かって以前に関数を送り込んだインタプリタを検索する。（上記の例では&lt;If&gt;[[&gt;を発行したインタプリタ）検索されたインタプリタは、 &lt;![CDATA[&lt;Remote&gt;や&lt;Local&gt;を発行し、結果待ちの状態になっているはずである。 Resultはinteger-exp(評価しない) に対応するRemote/Local を探しだし、その Remote/Localへ結果値を受け渡し、結果待ちのインタプリタを起こす。 

&lt;Result&gt;の評価結果は常にErrDonPrint。また、 &lt;Result&gt;を評価するインタプリタがなにかを評価していて、ビジーの状態である場合もあるので、現在のインプリメントでは、フロントスレッドが、 Resultだけ特別に評価するという仕組みになっている。 
</explanation>
</function>
