他の問い合わせ関数(Is Matrix()、Is List()、Is Scriptable()など)を使うと、特定のタイプのオブジェクトをテストできます。次の例は、Is Matrix()が真の場合に特定の計算を実行します。
a = [2 3];
b = [1, 1];
c = a * b;
If( Is Matrix( c ),
(c ^ a) / (a * b),
Print( "c is not a matrix." )
);
[5 25]
Is Scriptable()は、オブジェクトがスクリプト可能なものの場合に1を戻します。次の例の4つの変数は、データテーブル、列、プラットフォーム、レポートを参照します。どのオブジェクトもスクリプト可能なので、Is Scriptable()はすべての例で1を戻します。
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
col = Column( "体重(ポンド)" );
plat = Bivariate( Y( :Name("体重(ポンド)") ), X( :Name("身長(インチ)") ) );
rep = Report( plat );
Show( Is Scriptable( dt ) );
Is Scriptable(dt) = 1;
Show( Is Scriptable( col ) );
Is Scriptable(col) = 1;
Show( Is Scriptable( plat ) );
Is Scriptable(plat) = 1;
Show( Is Scriptable( rep ) );
Is Scriptable(rep) = 1;
Is Empty()は、変数に値、関数、式、またはオブジェクトへの参照があるかどうかを調べます。変数が定義されていなかったり、Empty()値を持っている場合は1を返します。それ以外の関数では、まだ値が作られていない、あるいは割り当てられていない変数を指定するとエラーが戻されます。プログラマはこういった変数を「初期化されていない変数」と呼んでいます。
次の例は、データテーブルが開いているかどうか、つまりdt変数に割り当てられているかどうかを調べる例です。データテーブルが開いていない場合は、Open()関数がユーザにテーブルを開くよう促します。
If( Is Empty( dt = Current Data Table() ),
dt = Open()
);
Is Empty()関数はどの変数(グローバル変数、ローカル変数、列など)にも使用できます。
表5.6に、オブジェクトのタイプを識別する関数をまとめます。
構文 |
説明 |
---|---|
Is Associative Array(x) |
引数が連想配列のときは1、そうでなければ0を戻す。 |
Is Directory(x) |
引数xがディレクトリのときは1、そうでなければ0を戻す。 |
Is Empty(global) Is Empty(dt) Is Empty(col) |
グローバル変数、データテーブル、またはデータ列に値がない(初期化されていない)ときは1、あれば0を戻す。 |
Is Expr(x) |
引数が式のときは1、そうでなければ0を戻す。 |
Is File(x) |
引数xがファイルのときは1、そうでなければ0を戻す。 |
Is List(x) |
引数がリストのときは1、そうでなければ0を戻す。 |
Is Matrix(x) |
引数が行列のときは1、そうでなければ0を戻す。 |
Is Name(x) |
引数が名前のときは1、そうでなければ0を戻す。結果ではなく保存された式を読み込むを参照してください。 |
Is Namespace(x) |
引数が名前空間のときは1、そうでなければ0を戻す。 |
Is Number(x) |
引数が数値か欠測値のときは1、そうでなければ0を戻す。 |
Is Scriptable(x) |
引数がスクリプト可能なオブジェクトのときは1、そうでなければ0を戻す。 |
Is String(x) |
引数が文字列のときは1、そうでなければ0を戻す。 |
Type(x) |
引数(x)のタイプを示す文字列を戻す。 |