スクリプトの作成を始める前に、『スクリプトガイド』全体で使用されている基本的なJSL用語を知っておく必要があります。
演算子は一般的な算術演算、スコープ名、正規表現、連結、添え字などの機能をもつ1文字あるいは二文字の記号(たとえば +あるいは=)です。
関数はコマンドで、追加情報として引数を指定する場合もあります。
一部のJSL関数は演算子と同様に機能しますが、より複雑なアクションを実行できます。たとえば、次の2つのスクリプトは同じ処理を行います。
2 + 3; // 5を戻す
Add( 2, 3 ); // 5を戻す
最初の行は+演算子を使用しています。2行目は等価な関数であるAdd()を使用しています。
JSLの演算子のすべてに、等価な関数がありますが、関数の中には等価な演算子がないものもあります。たとえば、Sqrt(a)はSqrt()関数でしか表現できません。
メモ: 以前のバージョンのJMPおよびそれらのマニュアルでは、演算子と関数という2つの用語があまり区別されていませんでした。今バージョンでは、より厳密に区別して記載しています。
オブジェクトとは、JMPの動的なエンティティで、たとえばデータテーブル、データ列、プラットフォーム結果ウィンドウ、グラフなどがこれに当たります。ほとんどのオブジェクトは、何らかのアクションを実行するメッセージを受け取ることができます。
メッセージとは、オブジェクトに送られるJSL式を指します。オブジェクトは、送られたメッセージを評価し、何らかのアクションを実行します。次の例で、dtはデータテーブルオブジェクトです。<<はメッセージが続くことを意味します。次のメッセージは、指定の変数を使って要約テーブルを作成するよう指示しています。
dt << Summary( Group( :年齢 ), Mean( :"身長(インチ)"n ) )
この式で、dtはデータテーブルへの参照を含む変数の名前です。この変数には任意の名前を使用できます。『スクリプトガイド』では、データテーブルの参照をdtと表記します。以下に、よく使用されているオブジェクトの表記方法を示します。
略語 |
Object(対象) |
---|---|
dt |
データテーブル |
col |
データテーブルの列 |
colname |
データテーブルの列の名前 |
obj |
オブジェクト |
db |
ディスプレイボックス |
これらの変数には参照が事前に割り当てられているわけではありません。どの変数も、使用する前に割り当てておく必要があります。次の例では、Aという名前のグローバル変数に"世界のみなさん、こんにちは"という値が割り当てられています。Show( A )コマンドが処理されると、Aの値が表示されます。
A = "世界のみなさん、こんにちは";
Show( A );
A = "世界のみなさん、こんにちは";
引数は、関数またはメッセージに送ることのできる追加の情報です。たとえば、Root(25)の場合、25はRoot()関数に対する引数です。Root()は指定された引数に対して実行され、結果として5を戻します。
プログラミングやスクリプティングのマニュアルを読むと、パラメータも登場するのが普通です。パラメータは、関数が受け入れる引数についての説明です。たとえば、Root()は一般的にRoot( number )のように指定され、numberがパラメータです。
パラメータと引数は、関数が必要とする情報をそれぞれ異なる視点から表現したものです。
『スクリプトガイド』では、簡単にするために両方のケースで引数という用語を使用します。
名前付き引数は、事前に決められた引数のセットの中から、引数の名前を記述して明示的に指定するものです。たとえば、Graph Box()関数内のtitle("折れ線グラフ")は、タイトルを明示的に定義する名前付き引数です。
Graph Box( title( "折れ線グラフ" ),
Frame Size( 300, 500 ),
Marker( Marker State( 3 ), [11 44 77], [75 25 50] );
Pen Color( "Blue" );
Line( [10 30 70], [88 22 44] ));
Frame Size()の引数の300と500は名前付き引数ではありません。これらの引数は位置に重要な意味があります。最初の引数は幅、2番目の引数は高さを表します。
関数とメッセージには、必須の引数とオプションの引数があります。オプションの引数は、指定しなくてもかまいません。表記上、オプションの引数は鍵括弧で囲んであります。
例:
Root( x, <n> )
で、引数xは必須です。引数nはオプションです。
オプションの引数の多くに、デフォルトの値があります。たとえばRoot()の場合、nのデフォルト値は2です。
コード |
出力 |
説明 |
---|---|---|
Root( 25 ) |
5 |
25の平方根を戻す。 |
Root( 25, 2 ) |
5 |
25の平方根を戻す。 |
Root( 25, 3 ) |
2.92401773821287 |
25の三乗根を戻す。 |
1本の縦棒(|)は論理ORを表します。引数を表すとき、orを単に|で表記します。
たとえば、パス名を指定する引数としてabsolute|relativeのような表記があった場合、引数には次の2つのオプションのどちらかを指定できることを示しています。
• absoluteは絶対パス名を示します。
• relativeは相対パス名を示します。
同様に、縦棒を使って3つ以上のオプションを示す場合もあります。
空白(スペース、タブ、改行など)と大文字、小文字の違いはJSLでは無視されます。つまり、次の2つの式は等価です。
式1
sum = 0;
For( i = 1, i <= 10, i++,
sum += i;
Show( i, sum );
);
式2
Sum = 0;
For( i = 1, i <= 10, i++,
Sum += i;
Show( i, Sum );
);
スクリプトはお好みのフォーマットで記述できますが、スクリプトエディタを使えば、自動的にフォーマットすることも可能です。『スクリプトガイド』では、大文字/小文字、スペース、改行、タブなどの使い方に、スクリプトエディタのデフォルトのフォーマットを使用します。スクリプトエディタの使用について詳しくは、スクリプトエディタの使用を参照してください。
メモ: 空白に関連する唯一の例外は、2文字の演算子(<=または++)です。これらの演算子はスペースで分離することができません。