一部の高水準プログラム言語には組み込み関数があります。組み込み関数は、プログラム内で、定義済み属性および事前定義値を持つ変数であるかのように参照することができます。 COBOL では、これらの関数は 組み込み関数 (intrinsic functions) と呼ばれます。これらの関数はストリングと数値を操作する機能を提供します。
組み込み関数の値は参照時に自動的に導き出されるため、関数を DATA DIVISION で定義する必要はありません。引数として使用する非リテラル・データ項目だけを定義してください。表意定数を引数として使用することはできません。
関数 ID は、COBOL 予約語 FUNCTION と、それに続く関数名 (Max など) と、それに続く関数の評価に使用される任意の引数 (x、y、z など) の組み合わせです。例えば、以下の例で強調されているワードのグループは、関数 ID です。
Unstring Function Upper-case(Name) Delimited By Space
Into Fname Lname
Compute A = 1 + Function Log10(x)
Compute M = Function Max(x y z)
関数 ID は、関数の呼び出しと、関数によって戻されるデータ値の両方を表します。関数 ID は、実際にデータ項目を表すため、戻り値の属性を持つデータ項目が使用できるところならば、PROCEDURE DIVISION のほとんどの場所で使用することができます。
COBOL ワード function は予約語ですが、関数名は予約されていません。このため、関数名を他のコンテキスト (データ項目の名前など) で使用することができます。例えば、Sqrt は、組み込み関数を呼び出し、プログラム内のデータ項目を指定するために使用できます。
Working-Storage Section.
01 x Pic 99 value 2.
01 y Pic 99 value 4.
01 z Pic 99 value 0.
01 Sqrt Pic 99 value 0.
. . .
Compute Sqrt = 16 ** .5
Compute z = x + Function Sqrt(y)
. . .
関数 ID は、英数字、国別、数字、または整数のいずれかのタイプの値を表します。英数字関数または国別関数の関数 ID には、サブストリング指定 (参照修飾子) を組み込むことができます。数字組み込み関数は、それらが戻す数値のタイプに応じてさらに分類されます。
関数 MAX、MIN、DATEVAL、および UNDATE は、指定された引数の型に応じていずれかのタイプの値を戻します。
関数 DATEVAL、UNDATE、および YEARWINDOW は、ウィンドウ化日付フィールドの操作および変換を援助するために、2000 年言語拡張として提供されています。
関数は、ネストされた関数の結果が外側の関数の引数についての要件を満たす限り、引数として他の関数を参照することができます。 例えば、Function Sqrt(5) は数値を戻します。したがって、下記の MAX 関数への 3 つの引数はすべて、この関数についての許容される引数型である数値になります。
Compute x = Function Max((Function Sqrt(5)) 2.5 3.5)
関連タスク
組み込み関数を使用したテーブル項目の処理
データ項目の変換 (組み込み関数)
データ項目の評価 (組み込み関数)