現在、mvBase から Unidata への移行を調査していますが、ダウンロードしたドキュメントでこれを確認できないため、ユーザー定義関数がサポートされているかどうかを知りたいですか?
たとえば、次のようなDATABASICプログラムがあります
A = @FUNCTION_NAME(VAR1)
現在、mvBase から Unidata への移行を調査していますが、ダウンロードしたドキュメントでこれを確認できないため、ユーザー定義関数がサポートされているかどうかを知りたいですか?
たとえば、次のようなDATABASICプログラムがあります
A = @FUNCTION_NAME(VAR1)
はい、Unidata はユーザー定義関数をサポートしています。
Unidata で関数を作成するには、コード ファイルの 1 行目に次のような行を使用します。
FUNCTION MY.FUNCTION.NAME( ARG1, ARG2 )
関数内で、RETURN ステートメントを使用して結果を返します。
RETURN ARG1 + ARG2
それを呼び出すには、関数を使用するプログラムの DEFFUN ステートメントで使用することを示す必要があります。
DEFFUN MY.FUNCTION.NAME( ARG1, ARG2 )
私は通常、DEFFUN ステートメントをプログラムの先頭近く、$INCLUDE の直後に配置します。(パラメータ名は FUNCTION 行と DEFFUN 行で一致する必要はありませんが、意図的に異なるものにする理由はわかりません。)
そのセットアップの後、式でその名前を使用して関数を呼び出すことができます。
TOTAL = MY.FUNCTION.NAME( 10, 15 )
このステートメントの後、TOTAL の値は 25 になります。
Unidata で @FUNCTION_NAME 構文で呼び出される関数を見たことがありません。