スクリプト構文リファレンス > JSL関数 > プログラミング関数
公開日: 04/01/2021

プログラミング関数

As Boolean(x)

説明

JSL式を評価し、ブール値を戻す。

x = 45;

b = As Boolean( x > 2 );

Show( b );

b = 1;

As Column(name)

As Column(dt, name)

:name

dt:name

説明

このスコープ演算子により、グローバル変数ではなく、現在のデータテーブル(または、オプションのデータテーブル参照引数dtで指定したテーブル)内のデータテーブル列として変数(name)が評価される。

引数

name

変数名。

dt

データテーブル参照。

ノート

:nameは、現在のデータテーブルの列名を参照します。dt:nameを使用して参照先データテーブルを指定することもできます。

As Constant(expr)

説明

計算後に変化しない値を生成するために、式を一度評価する。

戻り値

評価の結果

引数

expr

任意のJSL式。

メモ

データテーブルに予測式の列を保存できるいくつかのプラットフォームでは、As Constant()が使用されています。この関数は、計算式の一部がすべての行について一定である場合に挿入されます。1行目について引数を評価し、後続の行については、再評価せずに同じ結果を使用します。

As Global(name)

::name

説明

このスコープ演算子により、データテーブル列ではなく、グローバル変数として変数(name)が評価される。

引数

name

変数名。

As List(matrix)

As List(matrix)を参照してください。

As Name("string")

説明

引数を文字列として評価し、それを名前に変更する。

戻り値

名前

As Namespace(name)

説明

指定された名前空間にアクセスする。そのような名前空間が存在しない場合はエラーが戻されます。

戻り値

名前空間

引数

name

定義された引用符なしの名前空間。

As Scoped(namespace, variable)

namespace:variable

説明

指定の名前空間namespaceにある指定の変数variableにアクセスする。

戻り値

変数の値、ただしスコープ変数が見つからない場合はエラー

引数

namespace

定義された名前空間の名前。

variable

名前空間namespace内の定義された変数。

Associative Array({key, value}, ...)

Associative Array(keys, values)

説明

連想配列(「辞書」または「ハッシュマップ」ともいう)を作成する。

戻り値

連想配列オブジェクト

引数

キー(key)と値(value)をペアとしたリスト。または、キーと値それぞれに、リスト、行列、またはデータテーブル列を指定することもできます。

Class Exists(class)

説明

指定されたクラスが、定義されているかどうかを示す値を戻す。

戻り値

0または1

引数

class

定義されたクラス、またはインスタンスが作成されたクラスオブジェクトへの参照の名前を表す文字列。

Clear Globals(<name>, <name>, ...)

説明

すべてのグローバルシンボルの値をクリアする。グローバル以外の任意のスコープにおけるシンボルには影響しません。1つまたは複数の名前が指定されている場合は、それらのグローバルシンボルだけがクリアされます。

戻り値

なし

オプションの引数

name

任意のグローバル変数名。

関連項目

Clear Symbols(<name>, <name>, ...)

Clear Log()

説明

ログウィンドウの内容をクリアする。別々のエディタウィンドウにあるスクリプトは、互いに通信するために名前空間またはグローバルを使用します。スクリプト1がスクリプト2を開く場合、スクリプト2は、スクリプト1のHere名前空間変数にアクセスできません。

Clear Symbols(<name>, <name>, ...)

説明

任意およびすべてのスコープにおけるすべてのシンボルの値をクリアする。1つまたは複数の名前が指定されている場合は、それらのシンボルだけがクリアされます。

戻り値

なし

オプションの引数

name

任意のグローバル変数名。

関連項目

Clear Globals(<name>, <name>, ...).

Close Log()

説明

ログを閉じる。

Define Class("class name", <Base Class( "base class name", <"base class name", ...> ),> <Show( All(Boolean) ) | Show( <Members(Boolean),> <Methods(Boolean),> <Functions(Boolean)> ),> <Assignment Statements>)

説明

新しいクラスオブジェクトを定義する。

Define Class(
	"aa",
	_init_ = Method( {} ); x = 1; m1 = Method( {a, b}, a * b )
);

関連項目

『スクリプトガイド』のクラスを参照してください。

Delete Classes(<Force(Boolean)>, < <class>, ...>)

説明

現在定義されているクラスをすべて削除する。

オプションの引数

Force(Boolean)

使用中のものも含め、クラスを削除する。

class

削除するクラスを指定する。複数のクラスを指定できます。この引数には、定義されたクラス、またはインスタンスが作成されたクラスオブジェクトへの参照の名前を表す文字列を指定できます。

Delete Globals(<name>, <name>, ...)

説明

グローバルシンボルをすべて削除する(ロックされているもの以外)。グローバル以外の任意のスコープにおけるシンボルには影響しません。1つまたは複数の名前が指定されている場合は、それらのグローバルシンボルだけがクリアされます。

オプションの引数

name

任意のグローバル変数名。

関連項目

Delete Symbols(<name>, <name>, ...)を参照してください。

Delete Namespaces(<Force(Boolean expression)>, < <namespace reference>, ...>)

Delete(<Force(Boolean expression)>, < <namespace reference>, ...>)

説明

現在定義されているすべての名前空間、または1つ以上の特定の名前空間を削除する。

オプションの引数

Force(Boolean expression)

名前空間が使用されている場合でも削除する。

namespace reference

削除する名前空間を指定する。複数指定できます。

ノート

ロックされた名前空間を含む名前空間を削除しようとした場合、ログにエラーが表示されます。ロックされた名前空間を削除するには、Force()引数を指定しなければなりません。

引数が何も指定されていない場合、Delete Namespaces()はロックされた名前空間を無視します。

Delete Symbols(<name>, <name>, ...)

説明

任意およびすべてのスコープにおけるすべてのシンボルを削除する。1つまたは複数の名前が指定されている場合は、それらのシンボルだけが削除されます。

オプションの引数

name

任意のグローバル変数名。

関連項目

Delete Globals(<name>, <name>, ...).

Eval(expr)

説明

exprを評価し、その評価の結果を戻す(つまり、アンクォートを行う)。

戻り値

評価の結果

引数

expr

任意のJSL式。

Eval Insert("string", <startDel>, <endDel>, < <<Use Locale(1) >)

説明

複数の置換を行う。

戻り値

結果

引数

string

置換したい式が途中に指定されている引用符付き文字列。

startDel

(オプション)開始の区切り文字。デフォルトの値は^。

endDel

(オプション)終了の区切り文字。デフォルトの終了文字は、開始文字と同じ文字。

Use Locale(1)

(オプション)ロケール固有の数値形式を維持する引数。

Eval Insert Into("string", <startDel>, <endDel>)

説明

複数の置換を行う。EvalInsertと同じ処理が実行され、stringに結果が割り当てられます。

戻り値

結果

引数

string

式が組み込まれている文字列を含む文字列変数。

startDel

(オプション)開始の区切り文字。デフォルトの値は^。

endDel

(オプション)終了の区切り文字。デフォルトの終了文字は、開始文字と同じ文字。

Eval List

Eval List({list})を参照してください。

Exit(<NoSave>)

Quit(<NoSave>)

説明

JMPを終了する。

戻り値

なし

引数

NoSave

(オプション)名前付きコマンド。開いているファイルを保存するかどうかを確認せずに、JMPを終了します。このオプション名も、大文字/小文字の区別はなく、また、スペースを含めてもかまいません。

First(expr, <expr>, ...)

説明

引数で指定されたすべての式を評価する。

戻り値

最初に評価された式の結果のみ

引数

expr

任意の有効なJSL式。

Function({arguments}, <{local variables}>, <Return(<expr>)>, script)

説明

argumentsをローカル変数とした、スクリプト(script)を保存する。

戻り値

定義されたとおりの関数。Return()引数が指定されている場合は、指定の式を戻します。

呼ばれたときは、指定の引数(arguments)でスクリプト(script)を実行した結果を戻します。

引数

{arguments}

関数に渡す引数のリスト。オプションまたは必須の引数を指定できます。

{local variables}

関数に対してローカルである変数のリスト。ローカル変数は、次の3つの方法で宣言できます。

	{var1, var2}
	{var1=0, var1="a string"}
	{Default Local}

最後のオプションは、関数内で使用されている変数のうち、適用範囲が指定されていないものがすべてローカルであることを宣言します。

Return(expr)

(オプション)ユーザー定義関数から式を戻す引数。ヌルの式を使用した場合は、ピリオド(.)が戻されます。

script

任意の有効なJSLスクリプト。

Get Class Names(< <class>, ...>)

説明

すべてのクラス、または指定したクラスの名前を取得する。

引数

class

定義されたクラス、またはインスタンスが作成されたクラスオブジェクトへの参照の名前を表す文字列。

戻り値

引数で指定されたクラスの名前のリスト。

Get Classes(< <class>, ...>)

説明

すべてのクラス、または指定したクラスへの参照を取得する。

引数

class

定義されたクラス、またはインスタンスが作成されたクラスオブジェクトへの参照の名前を表す文字列。

戻り値

引数で指定されたクラス参照のリスト

Get Environment Variable("variable")

説明

オペレーティングシステムの環境変数の値を取得する。

戻り値

指定された環境変数の値を示す文字列。指定された変数が見つからない場合は空を戻します。

引数

"variable"

環境変数の名前を示す文字列。

メモ

macOSでは、環境変数名に大文字と小文字の区別があります。Windowsでは区別がありません。

Get Log(<n>)

説明

ログの内容を、リストで戻す。

戻り値

文字列のリスト。各文字列には1行分のログが含まれます。

引数

n

(オプション)整数。引数が指定されなかった場合は、すべての行を戻します。正の数が指定された場合は、最初のn行を戻します。負の数が指定された場合、最後のn行を戻します。n=0の場合、どの行も戻しません(空のリストを戻します)。ログが空の場合、空のリストを戻します。

Get Namespace Names(< <namespace reference>,...>)

説明

現在定義されているすべての名前空間の名前をリストで戻す。

nsaa = New Namespace(
	"aa",
	{
		x = 1
	}
);
nsbb = New Namespace(
	"bb",
	{
		y = 1
	}
);
lns = Get Namespace Names();
Show( lns );
nsaa << Delete;
nsbb << Delete;

Get Namespaces(< <namespace reference>,...>)

説明

現在定義されている名前空間をリストで戻す。

nsaa = New Namespace(
	"aa",
	{
		x = 1
	}
);
nsbb = New Namespace(
	"bb",
	{
		y = 1
	}
);
lns = Get Namespaces();

Include("pathname", <named arguments>)

説明

引用符付き文字列として指定されたパス名(pathname)に対応するスクリプトファイルを開き、スクリプトを実行する。

戻り値

インクルードされたスクリプトが戻すものすべて。<<Parse Onlyオプションを使用した場合、Includeはスクリプトの中身を戻します。

名前付き引数

<<Parse Only

スクリプトを解析するが、実行はしない。

<<New Context

インクルードしたスクリプトを、独自の名前空間で実行する。親とインクルードされるスクリプトがグローバル名前空間を使用する場合は、<<Names Default to Here<<New Contextとともに指定します。

<<Allow Include File Recursion

インクルード元のファイルを、自分自身からインクルードすることを許す。

ノート

パス名の末尾に空白文字が含まれる場合、Windowsでは空白文字が無視されます。macOSではスクリプトが動作しません。

関数の詳細については、『スクリプトガイド』のIncludeを参照してください。

Include File List()

説明

実行時にインクルードされているファイルのリストを戻す。

Is Class(class)

説明

引数で指定したものがクラスオブジェクトかどうかを示す値を戻す。

引数

インスタンスが作成されたクラスオブジェクトへのクラス参照。

戻り値

0または1

Is Log Open()

説明

ログウィンドウが開いているかどうかの結果を戻す。

Length

Length("string")を参照してください。

List

List(a, b, c, ...)を参照してください。

Local({name=value, ...}, script)

説明

変数(name)をローカル変数として定義し、スクリプト(script)を実行する。

Local Here(expression)

説明

ローカルのHere名前空間ブロックを作成する。複数のスクリプトが同じルートの名前空間から実行されるときの競合を回避したい場合に、この関数を使用します(たとえば、スクリプトが同じ変数を持つ2つのボタンスクリプトを実行する場合など)。引数には任意の有効なJSL式を使用できます。

Lock Namespaces(<"string">,|< {"string"}, ...>)

説明

名前空間にあるすべての変数または指定した変数をロックし、追加や変更、削除ができないようにする。

ns = New Namespace(
	"aaa"
);
ns << Lock Namespaces;
Try( ns << Delete Namespaces, Show( exception_msg ) );
Delete Namespaces();
Try( Delete Namespaces( "aaa" ), Show( exception_msg ) );

Lock Globals(name1, name2, ...)

説明

1つ以上のグローバル変数を、変更されないようにロックする。

Lock Symbols(<name>, <name>, ...)

説明

指定のグローバル変数をロックする。これにより、変数が変更されたり消去されたりするのを防げます。変数が指定されていない場合は、すべてのグローバル変数をロックします。なお、変数が指定されていない場合でも、スクリプトでNames Default To Hereモードがオンになっている場合は、すべてのローカル変数だけをロックします。

LogCapture(expr)

説明

引数exprを評価し、通常ログに送られるはずの出力を取得し、ログに出力する代わりに文字列で戻す。

戻り値

ログ出力を示す文字列

引数

任意の有効なJSL式。

ノート

ログには何も出力されません。

Method({arg1 = val1, ...}, script)

説明

クラス内にメソッドを作成する。メソッドは、明示的に適用範囲が指定されていないすべての変数(クラスメンバー変数を除く)に対し、ローカルの範囲を使用します。

引数

{ arg1 = val1, ... }期待される引数とオプションの初期値の式のセット。呼び出し時にメソッドに渡されます。

script

任意の有効なJSLスクリプト。

N Items

N Items(source)を参照してください。

Names Default To Here(Boolean)

説明

未解決の名前を保持する場所を指定する。グローバルまたはローカルに保持する場合はBoolean0Hereスコープ内に保持する場合はBoolean1に指定します。

Namespace(name)

説明

指定された名前(name)の名前空間への参照を戻す。

引数

name

名前空間名の文字列、または、名前空間への参照。

Namespace Exists(name)

説明

指定された名前(name)の名前空間が存在する場合は1、そうでない場合は0を戻す。

New Namespace(<"name">, <{expr, ...}>)

説明

指定の名前(name)で新しい名前空間を作成する。名前が指定されていない場合は、匿名の名前が使用されます。

戻り値

名前空間への参照

引数

name

(オプション)新しい名前空間の名前を示す引用符付き文字列。

{list of expressions}

(オプション)名前空間内の式のリスト。

Open Log()

説明

ログを開く。ログウィンドウがすでに開いている場合、ブール値の引数(1)を指定するとウィンドウがアクティブになります。

New Object("class name"(constructor arguments))
New Object(class name(constructor arguments))
New Object(class reference(constructor arguments))

説明

クラスのインスタンスオブジェクトを作成する。

引数

"class name"

インスタンスを作成するクラスの名前。

class name

インスタンスを作成するクラスの、引用符なしの名前。

class reference

既存のクラスオブジェクトへの参照。これを使って、同じクラスの新しいオブジェクトのインスタンスが作成されます。

constructor arguments

_init_コンストラクタに渡される引数。

Define Class(
	"complex",
	real = 0; imag = 0;
	_init_ = Method( {a, b}, 		real = a; 		imag = b; 	);
	Add = Method( {y}, 		complex( real + y:real, imag + y:imag ) 	);
	Sub = Method( {y}, 		complex( real - y:real, imag - y:imag ) 	);
	Mul = Method( {y},
		complex( real * y:real - imag * y:imag, imag * y:real + real * y:imag )
	);
	Div = Method( {y},
		t = complex( 0, 0 );
		mag2 = y:Magsq();
		t:real = real * y:real + imag * y:imag;
		t:imag = imag * y:real + real * y:imag;
		t:real = t:real / mag2;
		t:imag = t:imag / mag2;
		t;
	);
	Magsq = Method( {}, 		real * real + imag * imag 	);
	Mag = Method( {}, 		Sqrt( real * real + imag * imag ) 	);
	To String = Method( {}, 		Char( real ) || " + " || Char( imag ) || "i" 	)
);
cl = New Object( complex( 1, 2 ) );

Parameter({name=value, ...}, model expression)

説明

「非線形回帰」プラットフォームで用いるモデルの計算式パラメータを定義する。

Parse("string")

説明

文字列をJSLの式に変換する。

Print(expr, expr, ...)

説明

指定された式(expr)の値をログに出力する。

Quit()

Exit(<NoSave>)を参照してください。

Recurse(arg1,arg2,...)

説明

定義した関数の再帰呼び出しを行う。

Save Log(pathname)

説明

指定のファイルにログの内容を書き込む。

Send(obj, message)

obj << message

説明

プラットフォームオブジェクト(obj)にメッセージ(message)を送る。

Set Environment Variable( "variable", <"value">)

説明

環境変数およびその値に設定する。"value"引数が未指定または空文字列の場合、環境変数はJMPプロセスの環境変数テーブルから削除されます。

Show(expr, expr, ...)

説明

各式(expr)の名前と値をログに出力する。

Show Classes(< <class>,...>)

説明

ユーザ定義のクラスの内容をログに表示する。複数のクラスを指定できます。引数を指定しなかった場合、ユーザ定義のクラスがすべて表示されます。

Define Class(
	"aa",
	_init_ = Method( {} ); x = 1; m1 = Method( {a, b}, a * b )
);
Define Class(
	"bb",
	_init_ = Method( {} ); y = 1; m2 = Method( {a, b}, a / b )
);
Show Classes();

// クラスaa

_init_ = Method( {} );

m1 = Method( {a, b}, a * b );

x = 1;

// クラスbb

_init_ = Method( {} );

m2 = Method( {a, b}, a / b );

y = 1;

Show Globals()

説明

すべてのグローバルシンボルの値を表示する。グローバル以外の任意のスコープにおけるシンボルは表示されません。

関連項目

Show Symbols().

Show Namespaces(< <namespace reference>,...>)

説明

ユーザが定義した名前空間(名前付きおよび匿名の両方)の内容を表示する。名前空間の指定はオプションです。

Show Symbols()

説明

すべてのスコープにおけるすべてのシンボルの値を表示する。

関連項目

Show Globals().

Sort List

Sort List({list }|expr)を参照してください。

Sort List Into

Sort List Into({list }|expr)を参照してください。

Throw("text")

説明

例外をスローする。テキスト(text)を指定した場合、Throwが実行されると、exception_msgという名前のグローバル変数にそのtextが格納されます。textが感嘆符(!)で始まり、Try()式の中に入っている場合は、どこで例外が発生したかを示すエラーメッセージを生成します。Try()の第2引数によってThrow()がキャッチされた場合でも、感嘆符(!)によりスクリプトが停止されます。

次も参照

『スクリプトガイド』の例外のスローとキャッチを参照してください。

Try(expr1, expr2)

説明

最初の式(expr1)を評価して、例外がスローされた場合には、そこで停止し、2番目の式(expr2)を評価してその結果を戻す。例外がスローされなかった場合は、expr2は評価されない。

Try( Sqrt( "s" ), "invalid" );

"invalid"

 
Try( Sqrt( "s" ), exception_msg );

{"引数を数値(または行列)に変換できません。"(1, 2, "Sqrt", Sqrt/*###*/("s"))}

ノート

Expr2には、文字列を指定することも、戻されたエラーに関する情報を含むグローバルな例外メッセージ(exception_msg)を指定することもできます。

Type(x)

説明

引数(x)のタイプを示す文字列を戻す。戻されるタイプとしては、Unknown、List、DisplayBox、Picture、Column、TableVar、Table、Empty、Pattern、Date、Integer、Number、String、Name、Matrix、RowState、Expression、Associative Array、BLOBがあります。

Unlock Symbols(name1, name2, ...)

Unlock Globals(name1, name2, ...)

説明

Lock Symbols()またはLock Globals()コマンドでロックされた指定の変数のロックを解除する。

Wait(n)

説明

n秒待ってから、スクリプトの実行を継続する。デフォルトの設定は3秒。Wait(0)と設定すると、メッセージの処理は1サイクルだけ行われます。たとえば、この関数を使ってユーザインターフェースでボタンを押す操作を可能にします。JMPが一時停止する時間として設定できる最小値はn = 0.01です。プロンプトを含むJMPダイアログを表示せずに一時停止できる時間の最大値は、n = 60*60*4です。

ノート

Wait(n)は、確認するのに十分な時間だけ何かを表示しておきたい場合や、スクリプトを作成する前にプラットフォームの起動を完了させる場合、スクリプトの実行中にユーザインターフェースでボタンを押す必要がある場合などに使用します。

Watch(all | name1, ...)

説明

変数(グローバル、ローカル、名前空間内の変数)およびその値をウィンドウに表示する。引数に"all"が指定されている場合、すべての変数がウィンドウに表示されます。

ノート

新しく追加した変数は、ウィンドウに追加されません。

メッセージを使って変更された連想配列の表示はサポートされていません。

Wild()

説明

どんな式にも一致するワイルドカードの位置を表す。この関数は、Extract Expr()での式のマッチングにだけ使用できる。

Wild List()

説明

どんな式にも一致するワイルドカードの位置を表す。この関数は、Extract Expr()での式のマッチングにだけ使用できる。

Write("text")

説明

テキスト(text)から引用符を取り除いたものをログに書き込む。

より詳細な情報が必要な場合や、質問があるときは、JMPユーザーコミュニティで答えを見つけましょう (community.jmp.com).