REUSE (expression)
REUSE 関数を使用すると、動的な配列の処理での、最後のフィールド、値、またはサブ値の値を再利用できます。
expression は、値が動的配列になると考えられる動的配列か式のどちらかになります。
動的配列処理が、平行して 2 つの動的配列を処理する時、処理は常に対応する従属値に対して実行されます。これは、対応するフィールドが値を 1 つずつしか含んでいない場合も同様です。 フィールドに値が 1 つしか含まれていない場合、フィールドの唯一の値に含まれる唯一のサブ値として扱われるためです。
動的配列処理は、動的配列内の対応するフィールド、値、従属値を分離します。これらはそのあと、次のような順序で処理されます。
REUSE 関数なしで動的配列の処理を行うと、2 つの配列が等しくなるまで、短い方の配列に、ゼロか空白ストリングが追加されます。(DIVS 関数は例外です。除数エレメントがない場合、除数配列にゼロか空白ストリングが埋め込まれ、被除数が戻ります。)
REUSE 関数では、長い方の配列のエレメントがなくなるまで、または次に高いレベルの区切り文字が出現するまで、短い方の配列の最後の値が再利用されます。
ペアになった対応する値内の従属値すべてが処理された後、動的配列処理によって、対応するフィールド内の対応する値の次のペアを分離し、そのプロシージャーを繰り返します。
対応するフィールドに含まれる値がすべて処理されると、動的な配列の処理は、その動的な配列内で次に対応するフィールドを分離します。この手順が繰り返されます。
expression が NULL 値として評価される場合、NULL 値を複製し、対応する各エレメントに NULL を返します。
B = (1:@SM:6:@VM:10:@SM:11)
A = ADDS(REUSE(5),B)
PRINT "REUSE(5) + 1:@SM:6:@VM:10:@SM:11 = ": A
*
PRINT "REUSE(1:@SM:2) + REUSE(10:@VM:20:@SM:30) = ":
PRINT ADDS(REUSE(1:@SM:2),REUSE(10:@VM:20:@SM:30))
*
PRINT "(4:@SM:7:@SM:8:@VM:10)*REUSE(10) = ":
PRINT MULS((4:@SM:7:@SM:8:@VM:10 ),REUSE(10))
次のプログラム出力が得られます。
REUSE(5) + 1:@SM:6:@VM:10:@SM:11 = 6S11V15S16
REUSE(1:@SM:2) + REUSE(10:@VM:20:@SM:30) =
11S12V22S32
(4:@SM:7:@SM:8:@VM:10)*REUSE(10) = 40S70S80V100