REDUCIBLE は、引数 (1 つまたは複数) が変更されない限り、プロシージャーまたは入り口を複数回呼び出す必要がないこと、およびプロシージャーの呼び出しに副次作用がないことを示します。
例えば、変更されないデータに基づいて結果を計算するユーザー作成の 関数には、REDUCIBLE が宣言されなければなりません。乱数や時刻などの、変更されるデータに基づいて結果を計算する 関数は、IRREDUCIBLE として宣言する必要があります。
次の例では、REDUCIBLE が宣言の一部になっているため、f が一度だけ呼び出されます。 宣言に IRREDUCIBLE が使われていると、f が 2 度呼び出されます。
dcl (f) entry options( reducible ) returns( fixed bin );
select;
when( f(x) < 0 )
.
.
.
when( f(x) > 0 )
.
.
.
otherwise
.
.
.
end;