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;