System ライブラリ


概要 - Abstract

VCSSL System ライブラリ は、一般的な用途において必須となるような基盤機能を提供する標準ライブラリです。

Systemライブラリは、実行対象のVCSSLプログラムを読み込むよりも先に、処理系によって自動で読み込まれます。このため System ライブラリは、特例的に import 不要で使用できます。

このような特例措置が適用される理由は、System ライブラリが提供する機能の使用頻度が、他の標準ライブラリに比べて著しく高いためです。System ライブラリは、他の標準ライブラリのように、特定の分野の機能をまとめたものではありません。分野によらず、一般的な利用シーンにおいて、使用頻度が特に高いと思われる機能が、Systemライブラリにまとめられています。恐らくおおよそ殆どのVCSSLプログラムにおいて、System ライブラリの提供する機能は必須となるでしょう。逆に、VCSSLでは、System ライブラリが提供する機能だけでも(つまり他の標準ライブラリを明示的に import しなくても)、簡易スクリプト言語としてある程度の実用範囲をカバーできるように配慮されています。

System ライブラリにおける具体的な機能の例としては、変数・配列に対する基本的な操作と変換、ユーザーとの入出力やファイル入出力、ファイルシステムとの単純なやり取り、オペレーティングシステムのコマンド実行などが挙げられます。これらの内のいくつかは、より高度かつ複雑な機能が、各分野に特化した標準ライブラリによっても提供されています。VCSSLにおける標準ライブラリの設計コンセプトでは、簡易用途では基本的に System ライブラリの機能を利用し、それでは機能不足が生じるような場合において、必要に応じて各種の特化したライブラリを import して利用するという使い方を想定しています。

System ライブラリでは、識別子の命名規則についても、他の標準ライブラリとはやや異なり、簡易用途における利便性を優先した、特例的なものとなっています。VCSSLの標準ライブラリにおける識別子の命名は、原則として、英単語を省略せずにロワーキャメルケースで綴る方針を採用しています。しかし System ライブラリにおいては、英単語を短縮してタイプ数を削り、必要に応じてプレフィックスやサフィックスで意味付けの補間をするような、略記的な識別子名称が多く採用されています。


目次 - Index

const string VER
処理系が対応する、VCSSLのバージョンコードを表します。
const string REV
処理系の開発リビジョンコードを表します。
const complex I
complex 型の虚数単位です。
const varcomplex VCI
varcomplex 型の虚数単位です。
const float INF
float 型の Inf (無限大) です。
const float NAN
float 型の NaN (非数) です。なお、NaN はあらゆる値と等しくありません。つまり、value == NAN といった比較で、変数 value が NaN であるかどうかを判定する事はできません。NaN の判定には nan 関数を使用してください。
const float FLOAT_MAX
float 型の最大値です。
const float FLOAT_MIN_ABS_NORMAL
正規化数の範囲内において、float 型で表現可能な、最も絶対値が小さい値(正の値、0 以外)です。
const float FLOAT_MIN_ABS_DENORMAL
非正規化数の範囲を含めて、float 型で表現可能な、最も絶対値が小さい値(正の値、0 以外)です。
const float FLOAT_MIN
FLOAT_MIN_ABS_DENORMAL と同様です。名称が短い代わりに、意味や仕様についてやや曖昧な名称であるため、基本的にはより明示的な名称の FLOAT_MIN_ABS_DENORMAL または FLOAT_MIN_ABS_NORMAL の使用が推奨されます。
const int INT_MAX
int 型の最大値です。
const int INT_MIN
int 型の最小値です。
const string EOL
環境依存の改行コードです。CR, LF, CR+LF などの中から、実行中の環境に適した値を保持しています。
const string CR
改行コード CR (0x0D) です。
const string LF
改行コード LF (0x0A) です。
const string READ
「読み込み」を行うファイル入出力モードです。open 関数で使用します。
const string WRITE
「書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string APPEND
「追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string READ_TSV
「TSV読み込み」を行うファイル入出力モードです。open 関数で使用します。
const string WRITE_TSV
「TSV書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string APPEND_TSV
「TSV追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string READ_CSV
「CSV読み込み」を行うファイル入出力モードです。open 関数で使用します。
const string WRITE_CSV
「CSV書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string APPEND_CSV
「CSV追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string READ_BINARY
「バイナリ読み込み」を行うファイル入出力モードです。open 関数で使用します。
const string WRITE_BINARY
「バイナリ書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string APPEND_BINARY
「バイナリ追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
const string STDIN
標準入力に対してファイル入出力関数を使用するための、特別なファイルパスです。
const string STDOUT
標準出力に対してファイル入出力関数を使用するための、特別なファイルパスです。
const string STDERR
標準エラー出力に対してファイル入出力関数を使用するための、特別なファイルパスです。
const int UP
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 切り上げ 」を行う丸めモードです。round 関数で使用します。
const int UP_SIGNIF
有効数字の部分( いわゆる Significand part )の桁数を指定して、「 切り上げ 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 UP 」として試験導入されていたものです。
const int DOWN
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 切り下げ 」を行う丸めモードです。round 関数で使用します。
const int DOWN_SIGNIF
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 切り下げ 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 DOWN 」として試験導入されていたものです。
const int HALF_UP
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 half up 丸め 」を行う丸めモードです。round 関数で使用します。
const int HALF_UP_SIGNIF
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 half up 丸め 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 HALF_UP 」として試験導入されていたものです。
const int HALF_DOWN
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 half down 丸め 」を行う丸めモードです。round 関数で使用します。
const int HALF_DOWN_SIGNIF
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 half down 丸め 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 HALF_DOWN 」として試験導入されていたものです。
const int HALF_TO_EVEN
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 half to even 丸め 」を行う丸めモードです。round 関数で使用します。
const int HALF_TO_EVEN_SIGNIF
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 half to even 丸め 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 HALF_EVEN 」として試験導入されていたものです。
macro print(...)
コンソールに文字列を出力します。引数は任意型であり、自動的に文字列型に変換されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、空白区切りで出力されます。
macro println(...)
コンソールに文字列を出力し、改行します。引数は任意型であり、自動的に文字列型に変換されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、空白区切りで出力されます。
macro output(...)
プログラムの処理結果を表示するための領域に、文字列を出力します。引数は任意型であり、自動的に文字列型に変換されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、空白区切りで出力されます。
macro input(...)
ユーザーから、任意文字列の入力を受け付けます。引数は任意型であり、自動的に文字列型に変換され、入力項目のメッセージとして表示されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。なお、最後の引数は、入力項目のデフォルト値として使用されます。
macro select(...)
ユーザに選択肢を提示し、選択された項目を取得します。引数は任意型であり、自動的に文字列型に変換され、選択肢として表示されます。
macro alert(...)
警告ウィンドウにメッセージを出力し、ユーザーがそれを了承するまで、プログラムの実行を待機します。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。なお、警告の意図のないメッセージの出力には、VCSSL 3.4以降からほぼ同機能の pop 関数が利用できます。今後、alert は警告の意図があるメッセージに対して使用する事が推奨されます。
macro popup(...)
ポップアップウィンドウにメッセージを出力し、ユーザーがそれを了承するまで、プログラムの実行を待機します。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。この関数は、現時点では alert 関数と全く同じ動作をしますが、警告の意図のないメッセージの出力に使用するため、VCSSL 3.4 から新たにサポートされたものです。alert と使い分ける事で、表示するメッセージが警告なのか通常のメッセージなのか、コード内で意図をはっきりさせる事ができます。将来的には、ウィンドウ上の表示アイコンなどが alert と違うものになる可能性もあります。
macro pop(...)
popup 関数と同じものです。この関数は、data.Stack ライブラリの pop 関数と同一名称であったため、どちらを呼び出しているかをコード上でわかりやすくしたい場合のため、後に同機能の popup 関数が追加されました。なお、Stack ライブラリの pop 関数は型パラメータを持っており、現在のVCSSLでは型パラメータの省略はできないため、この関数とシグネチャが競合する可能性は、少なくとも現時点ではありません。この関数は互換目的でサポートされており、今後も引き続き使用できますが、混乱をなるべく避けるため、特に事情がなければ今後は popup 関数を優先的に使用する事が推奨されます。
macro confirm(...)
メッセージを出力し、ユーザーに 了承 / 拒否 の二択を提示します。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。
string[ ] choose()
ユーザーにファイルを選択画面を提示し、選択されるまでプログラムの実行を待機します。
string[ ] choose(string message)
ユーザーにファイルを選択画面を提示し、選択されるまでプログラムの実行を待機します。
string[ ] choose(string message, string directory)
ユーザーにファイルを選択画面を提示し、選択されるまでプログラムの実行を待機します。
void beep()
ビープ音を鳴らします。ただし、実際に鳴らせるかどうかは環境に依存します。場合によっては、ビープ音でない音(オペレーティングシステムの警告音など)が鳴る事もあります。
void beep(int repeat)
ビープ音を鳴らします。ただし、実際に鳴らせるかどうかは環境に依存します。場合によっては、ビープ音でない音(オペレーティングシステムの警告音など)が鳴る事もあります。
void beep(int repeat, int wait)
ビープ音を鳴らします。ただし、実際に鳴らせるかどうかは環境に依存します。場合によっては、ビープ音でない音(オペレーティングシステムの警告音など)が鳴る事もあります。
void clear()
コンソールの内容をクリアします。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
void hide()
コンソールを非表示にします。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
void show()
コンソールが非表示にされている場合、表示します。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
int time()
プログラム実行開始からの経過時間を、ミリ秒単位で返します。
macro sleep(int milliSecond)
プログラムの実行を一時停止します。
void exit()
プログラムの実行を終了します。なお、この関数は、処理系にプログラムの終了をリクエストするものであり、必ずしも即時的に実行が終了される事が保証されるものではありません。この関数をコールするには、全てのループや分岐を抜けた後のプログラム最終行など、処理系がアイドリング状態となっているタイミングが理想的です。処理系が高速に処理を行っているタイミングでこの関数をコールすると、強制終了に近い状態となります。詳細は処理系の実装や最適化の方針などに依存しますが、処理系は、この関数がコールされた時点で、即時的に中断できないような一連の演算処理を行っている最中かもしれません。その場合はタイムラグが生じ、コール後も少しの間、実行が継続される場合があります。
void exit(int code)
終了ステータスコードを指定して、プログラムの実行を終了します。なお、この関数は、処理系にプログラムの終了をリクエストするものであり、必ずしも即時的に実行が終了される事が保証されるものではありません。この関数をコールするには、全てのループや分岐を抜けた後のプログラム最終行など、処理系がアイドリング状態となっているタイミングが理想的です。処理系が高速に処理を行っているタイミングでこの関数をコールすると、強制終了に近い状態となります。詳細は処理系の実装や最適化の方針などに依存しますが、処理系は、この関数がコールされた時点で、即時的に中断できないような一連の演算処理を行っている最中かもしれません。その場合はタイムラグが生じ、コール後も少しの間、実行が継続される場合があります。
void reset(string programName, string args[ ])
処理系をリセットし、別のプログラムを実行します。
macro error(...)
エラーメッセージを出力します。エラーメッセージ出力後、プログラムの実行が終了されるか、継続されるかは、処理系に依存します。確実に終了させたい場合は、続けて exit をコールしてください。
macro assert(bool expectedCondition)
式の値を評価し、真であれば何も行わず、偽であればエラーメッセージを出力します。プログラムの実行は恐らく終了されます。この関数はテストに使用します。
macro exec(...)
オペレーティングシステムのコマンド、または外部プログラムを、別プロセスで非同期で実行します。呼び出し元プログラムの実行は、処理の完了を待機しません。生成したプロセスと並列的に、実行を継続します。処理の実行を待機したり、標準入出力を制御したい場合は、Process ライブラリを使用してください。
macro system(...)
オペレーティングシステムのコマンド、または外部プログラムを、同期実行します。処理が完了するまで、呼び出し元プログラムの実行は待機します。
macro alloc(...)
配列の要素数を変更します。変更前後で、同じインデックスの要素は、同じ値に保たれます。
macro free(...)
配列の全次元の要素数を 0 にします。
bool exists(string filePath)
ファイルが存在するか確認します。
void mkdir(string directoryPath)
ディレクトリ(フォルダ)を新規生成します。ディレクトリが既に存在した場合は、何もしません。
bool isdir(string filePath)
ファイルがディレクトリかどうかを確認します。
string[ ] listdir(string directoryPath)
ディレクトリ内のファイル名一覧を返します。
macro rank(...)
配列の次元数を返します。例えば配列 a[11][28][32] に対して、rank(a) は 3 です。
macro length(...)
配列の要素数を返します。第二引数には、要素数を知りたい次元を、左から 0, 1, 2, ... と数えたインデックスを指定します。例えば配列 a[11][28][32] に対して、length(a, 0) は 11 であり、length(a, 1) は 28 であり、 length(a, 2) は 32 です。
bool nan( float value )
float 型の変数または値が、NaN (非数) かどうか判定します。
bool inf( float value )
float 型の変数または値が、Inf (無限大) かどうか判定します。
string bin( int number )
int 型の変数または値を、2進数で表した文字列を返します。先頭には 0b のプレフィックスが付加されます。
string oct( int number )
int 型の変数または値を、8進数で表した文字列を返します。先頭には 0 のプレフィックスが付加されます。
string hex( int number )
int 型の変数または値を、16進数で表した文字列を返します。先頭には 0x のプレフィックスが付加されます。
macro digit(arg)
varfloat 型または varcomplex 型の演算桁数を指定します。
macro digit()
varfloat 型または varcomplex 型の演算桁数を取得します。
float round(float value, int digit, int mode)
float型の値を、指定されたモードで、指定された桁数に丸めます。ただし、float型の値は、内部では2進数の浮動小数点数のデータとして保持されており、丸め処理は10進数基準で行われるため、2進/10進変換誤差についての留意が必要です。浮動小数点数の2進数と10進数の変換は、一般に有限の桁に収まらないケースがあり、微小な誤差が生じ得ます。そのため、float 値の内部データの値は、10進数ベースで想像している値とは僅かに食い違っている可能性があります。従って、対象値が丸め処理の切り上げ/切り下げの境界に非常に近い場合、一見すると奇妙な(しかし内部的には正しい処理の)結果となる場合があります。なお、float 値を文字列に変換したり print 関数で表示した結果と、この関数での丸め結果との対応が一見奇妙に思える場合もありますが、それは、前者においても内部で暗黙の丸め処理が行われるためです。もし、前者と同じ結果から、さらに追加で意図通り丸めた値が欲しい場合は、引数 value を string に変換した上で渡してください。
string round(string value, int digit, int mode)
string 型の値の内容を数値と見なして、指定されたモードで、指定された桁数に丸めます。この関数は、float 値を文字列に変換したり print 関数で表示した際と同じ内容(内部で暗黙の丸め処理が行われます)を基準として、さらに意図通り丸めたい場合などに使用します。float 型の値を直接丸める場合と比べて、2進/10進変換誤差の影響が少し異なる場合があります。詳細は、引数 value が float 型の場合の説明をご参照ください。
complex round(complex value, int digit, int mode)
complex型の値を、指定されたモードで、指定された桁数に丸めます。ただし、complex 型の実部と虚部の値は、内部では2進数の浮動小数点数のデータとして保持されており、丸め処理は10進数基準で行われるため、2進/10進変換誤差についての留意が必要です。詳細は、引数 value が float 型の場合の説明をご参照ください。
varfloat round(varfloat value, varint digit, int mode)
varfloat型の値を、指定されたモードで、指定された桁数に丸めます。
varcomplex round(varcomplex value, varint digit, int mode)
varcomplex型の値を、指定されたモードで、指定された桁数に丸めます。
void round(int mode)
varfloat 型および varcomplex 型の演算における、デフォルトの丸めモードを指定します。なお、varfloat 型および varcomplex 型の丸め制御と、この関数の実装は、現在は試験的に導入されているものです。現時点では、あらゆる演算において指定通りに丸め制御が行われる事は、必ずしも保証されません。使用する際には、事前に検証を行って下さい。varfloat 型および varcomplex 型の丸め制御、及びこの round 関数の実装は、試験導入期間を経た上で、VCSSL 4 以降での正式導入を予定しています。
float re( complex value )
complex 型の実部を返します。
float im( complex value )
complex 型の虚部を返します。
void re( complex value, float realValue )
complex 型の実部を設定します。
void im( complex value, float imagValue )
complex 型の虚部を設定します。
varfloat re( varcomplex value )
varcomplex 型の実部を返します。
varfloat im( varcomplex value )
varcomplex 型の虚部を返します。
void re( varcomplex value, varfloat realValue )
varcomplex 型の実部を設定します。
void im( varcomplex value, varfloat imagValue )
varcomplex 型の虚部を設定します。
macro save(string filePath, content)
簡易ファイル出力関数です。string 変数の保持する内容を、ファイルに保存します。
void save(string filePath)
簡易ファイル出力関数です。現在コンソールに表示されている内容を、ファイルに保存します。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
string load(string filePath)
簡易ファイル入力関数です。ファイルの内容を全て読み込み、そのまま文字列として返します。読み込み後、ファイルは自動的に閉じられます。
string load()
簡易ファイル入力関数です。現在コンソールに表示されている内容を取得し、そのまま文字列として返します。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も得られません。
int open(string filePath, string mode)
ファイルを開き、固有の識別番号( ファイルID )を割り振って返します。引数 filePath には、通常はファイル名またはパスを指定しますが、代わりに STDINSTDOUT, STDERR を指定して標準入出力に読み書きする事も可能です。
int open(string filePath, string mode, string textEncoding)
ファイルを開き、固有の識別番号( ファイルID )を割り振って返します。引数 filePath には、通常はファイル名またはパスを指定しますが、代わりに STDINSTDOUT, STDERR を指定して標準入出力に読み書きする事も可能です。
macro openw(...)
この関数は VCSSL 1.0 世代のものであり、open( filePath, "wtsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
macro opencsvw(...)
この関数は VCSSL 1.0 世代のものであり、open( filePath, "wcsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
macro openr(...)
この関数は VCSSL 1.0 世代のものであり、open( filePath, "rtsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
macro opencsvr(...)
この関数は VCSSL 1.0 世代のものであり、open( filePath, "rcsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
void close(int fileID)
ファイルを閉じます。この時点で、バッファされている書き込み内容は全てフラッシュされます。
void flush(int fileID)
ファイルのバッファされている書き込み内容をフラッシュします。
macro write(int fileID, ...)
ファイルに内容を書き込みます。書き込み内容は任意型で、書き込み時に文字列に変換されます。書き込み内容を複数指定した場合、それがどのような形で書き込まれるかは、ファイル入出力モードに依存します。 "w" または WRITE モードの場合 : 書き込み内容が、そのまま連結されて書き込まれます。 , "wtsv" または WRITE_TSV モードの場合 : 書き込み内容が、タブ文字区切りで連結されて書き込まれます。 , "wcsv" または WRITE_CSV モードの場合 : 書き込み内容が、カンマ文字区切りで連結されて書き込まれます。 , なおこの関数は、VCSSL2.1以前では改行されますが、2.2以降では改行されません。改行付きの機能は writeln 関数が提供します。
macro writeln(int fileID, ...)
ファイルに内容を書き込み、改行します。書き込み内容は任意型で、書き込み時に文字列に変換されます。書き込み内容を複数指定した場合、それがどのような形で書き込まれるかは、ファイル入出力モードに依存します。 "w" または WRITE モードの場合 : 書き込み内容が、そのまま連結されて書き込まれます。 , "wtsv" または WRITE_TSV モードの場合 : 書き込み内容が、タブ文字区切りで連結されて書き込まれます。 , "wcsv" または WRITE_CSV モードの場合 : 書き込み内容が、カンマ文字区切りで連結されて書き込まれます。 , なお、改行コードには、実行環境に適切なものが自動的に採用されます。もしも、LFCR などの特定の改行コードを使用したい場合は、この関数の代わりに write 関数を使用し、書き込み内容に LFCR を付加して書き込んでください。
string[ ] read(int fileID)
ファイルの内容を全て読み込みます。戻り値は string 型配列ですが、これに読み込み内容がどのように格納されるのかは、ファイル入出力モードに依存します。 "r" または READ モードの場合 : ファイルの内容がそのまま、要素数 1 の string 型配列に格納して返されます。 , "rtsv" または READ_TSV モードの場合 : ファイルの内容が、空白及び改行区切りで、string 型配列に格納して返されます。タブ文字と半角空白は同一視されます。 , "rcsv" または READ_CSV モードの場合 : ファイルの内容が、カンマ記号及び改行区切りで、string 型配列に格納して返されます。 , CSV や TSV の読み込みでは、エンクロージャやデリミタの解釈は行われず、単純に区切り文字が存在する位置で区切られます。また、TSV ではタブ文字と半角空白は区別されません。このあたりの挙動を、より厳密に制御したい場合は、file.TextFile ライブラリを使用してください。なおこの関数は、VCSSL2.1以前では行単位の読み込みでしたが、VCSSL2.2以降から全体の読み込みに変更されました。行単位の、過去と同様の機能は readln 関数が提供します。
string[ ] readln(int fileID)
ファイルから一行の内容を読み込みます。戻り値は string 型配列ですが、これに読み込み内容がどのように格納されるのかは、ファイル入出力モードに依存します。 "r" または READ モードの場合 : ファイルの内容がそのまま、要素数 1 の string 型配列に格納して返されます。 , "rtsv" または READ_TSV モードの場合 : ファイルの内容が、空白区切りで、string 型配列に格納して返されます。タブ文字と半角空白は同一視されます。 , "rcsv" または READ_CSV モードの場合 : ファイルの内容が、カンマ記号区切りで、string 型配列に格納して返されます。 , なお、CSV や TSV の読み込みでは、エンクロージャやデリミタの解釈は行われず、単純に区切り文字が存在する位置で区切られます。また、TSV ではタブ文字と半角空白は区別されません。このあたりの挙動を、より厳密に制御したい場合は、file.TextFile ライブラリを使用してください。
string load(int fileID)
ファイルの内容を全て読み込み、そのまま文字列として返します。
string loadln(int fileID)
ファイルから一行の内容を全て読み込み、そのまま文字列として返します。
int countln(int fileID)
ファイルの行数をカウントします。
macro eval(string expression)
文字列を式として評価します。レキシカルスコープで、変数や関数へのアクセスも可能です。また、代入を行う事もできます。戻り値には、式の値が string 型配列に変換されて返されます ( 式の値が非配列であった場合は、戻り値の要素数は 1 となります )。string 型配列は、最も変換自由度の高い型であり、あらゆるプリミティブ型の配列と非配列に代入できます ( 非配列へは要素数が1の場合に限り可能です )。反面、繰り返し高速に評価したい場合、特に戻り値が int 型や float 型である場合においては、文字列を介する型変換がボトルネックとなります。そういった場合は、評価式の中で結果を変数に代入し、戻り値を利用せずに捨てる事で、ボトルネックを回避できます。
macro eval(string expression, literalType)
文字列を式として評価します。引数 1 個の eval 関数と異なるのは、式中でサフィックスが明示されていない数値リテラルを、どの型と解釈するか指定できる点です。例えば "1 / 2" の式は、通常は int 型同士の除算となるため、値は 0 です。これを float 型同士の除算と見なして 0.5 を得たい場合には、第二引数に float 型の値 ( 0.0 など ) を指定してください。なお第二引数は、型のみが意味を持ち、値は無視されます(しかしながら、初来的に何らかの意味づけが加えられる可能性もあるため、特に理由が無ければ 0 や 0.0 を指定する事が推奨されます)。
macro feval(string expression)
文字列を式として評価し、値を float 型の非配列で返します。
macro feval(string expression, literalType)
文字列を式として評価し、値を float 型の非配列で返します。
macro ieval(string expression)
文字列を式として評価し、値を int 型の非配列で返します。
macro ieval(string expression, literalType)
文字列を式として評価し、値を int 型の非配列で返します。
macro ceval(string expression)
文字列を式として評価し、値を complex 型の非配列で返します。
macro ceval(string expression, literalType)
文字列を式として評価し、値を complex 型の非配列で返します。
macro beval(string expression)
文字列を式として評価し、値を bool 型の非配列で返します。
macro beval(string expression, literalType)
文字列を式として評価し、値を bool 型の非配列で返します。
macro seval(string expression)
文字列を式として評価し、値を string 型の非配列で返します。
macro seval(string expression, literalType)
文字列を式として評価し、値を string 型の非配列で返します。
macro vfeval(string expression)
文字列を式として評価し、値を varfloat 型の非配列で返します。
macro vfeval(string expression, literalType)
文字列を式として評価し、値を varfloat 型の非配列で返します。
macro vieval(string expression)
文字列を式として評価し、値を varint 型の非配列で返します。
macro vieval(string expression, literalType)
文字列を式として評価し、値を varint 型の非配列で返します。
macro vceval(string expression)
文字列を式として評価し、値を varcomplex 型の非配列で返します。
macro vceval(string expression, literalType)
文字列を式として評価し、値を varcomplex 型の非配列で返します。
macro evaluable(string expression)
式の内容が構文的に正しいかどうかを判定します。eval 関数は構文解析に失敗すると処理速度が低下するため、式を高速に繰り返し評価したい場合、事前にこの関数で式の正当性を確認しておく事が推奨されます。
macro evaluable(string expression, literalType)
式の内容が構文的に正しいかどうかを判定します。eval 関数は構文解析に失敗すると処理速度が低下するため、式を高速に繰り返し評価したい場合、事前にこの関数で式の正当性を確認しておく事が推奨されます。
macro evaltr(string expression)
文字列を式として評価し、処理系の内部処理情報を返します。内容は完全に処理系依存です。なお、利用できる式には処理系依存の制約があり、必ずしも通常の式評価と整合する内容を返すとは限りません。また、一般に副作用のある式には使用できません。この関数は、主に開発時やデバッグ時に使用します。
macro evaltr(string expression, literalType)
文字列を式として評価し、処理系の内部処理情報を返します。内容は完全に処理系依存です。なお、利用できる式には処理系依存の制約があり、必ずしも通常の式評価と整合する内容を返すとは限りません。また、一般に副作用のある式には使用できません。この関数は、主に開発時やデバッグ時に使用します。
macro override(string functionName, string argumentType[ ], string functionCode)
関数の処理内容を、実行時に変更します。eval 関数は、ローカル変数の宣言や、複数の文を実行できないため、そのような処理を動的評価で行いたい場合には、この関数を使用します。なお、この関数でできるのは、既存の関数の処理内容を変更する事のみであり、新しい関数を宣言する事はできません。
string lf()
環境依存の改行コードを返します。VCSSL 3 以降では、定数 EOL をそのまま改行コードとして使用できます。この関数は、関数コールのオーバーヘッドを無駄に要します。新しいプログラムでは 定数 EOL の使用が推奨されます。この関数は互換目的でサポートされています。
string linefeed()
環境依存の改行コードを返します。VCSSL 3 以降では、定数 EOL をそのまま改行コードとして使用できます。この関数は、関数コールのオーバーヘッドを無駄に要します。新しいプログラムでは 定数 EOL の使用が推奨されます。この関数は互換目的でサポートされています。
void main( )
いわゆる main 関数です。全モジュールのグローバル領域の処理(例えばグローバル定数の初期化など)が完了した時点で、自動的にコールされます。複数のモジュールにおいて main 関数が存在する場合、モジュールの読み込み順序に基づいて、最後に定義されたものだけがコールされます(この点は一般のイベントハンドラと異なります)。
void main( string args[ ] )
いわゆる main 関数です。全モジュールのグローバル領域の処理(例えばグローバル定数の初期化など)が完了した時点で、自動的にコールされます。複数のモジュールにおいて main 関数が存在する場合、モジュールの読み込み順序に基づいて、最後に定義されたものだけがコールされます(この点は一般のイベントハンドラと異なります)。

構造体 - Structs

- なし - None -


変数 - Variables

文法的定義
- Signature
const string VER
変数名
- Name
VER
役割
- Role
処理系が対応する、VCSSLのバージョンコードを表します。
文法的定義
- Signature
const string REV
変数名
- Name
REV
役割
- Role
処理系の開発リビジョンコードを表します。
文法的定義
- Signature
const complex I
変数名
- Name
I
役割
- Role
complex 型の虚数単位です。
文法的定義
- Signature
const varcomplex VCI
変数名
- Name
VCI
役割
- Role
varcomplex 型の虚数単位です。
文法的定義
- Signature
const float INF
変数名
- Name
INF
役割
- Role
float 型の Inf (無限大) です。
文法的定義
- Signature
const float NAN
変数名
- Name
NAN
役割
- Role
float 型の NaN (非数) です。なお、NaN はあらゆる値と等しくありません。つまり、value == NAN といった比較で、変数 value が NaN であるかどうかを判定する事はできません。NaN の判定には nan 関数を使用してください。
文法的定義
- Signature
const float FLOAT_MAX
変数名
- Name
FLOAT_MAX
役割
- Role
float 型の最大値です。
文法的定義
- Signature
const float FLOAT_MIN_ABS_NORMAL
変数名
- Name
FLOAT_MIN_ABS_NORMAL
役割
- Role
正規化数の範囲内において、float 型で表現可能な、最も絶対値が小さい値(正の値、0 以外)です。
文法的定義
- Signature
const float FLOAT_MIN_ABS_DENORMAL
変数名
- Name
FLOAT_MIN_ABS_DENORMAL
役割
- Role
非正規化数の範囲を含めて、float 型で表現可能な、最も絶対値が小さい値(正の値、0 以外)です。
文法的定義
- Signature
const float FLOAT_MIN
変数名
- Name
FLOAT_MIN
役割
- Role
FLOAT_MIN_ABS_DENORMAL と同様です。名称が短い代わりに、意味や仕様についてやや曖昧な名称であるため、基本的にはより明示的な名称の FLOAT_MIN_ABS_DENORMAL または FLOAT_MIN_ABS_NORMAL の使用が推奨されます。
文法的定義
- Signature
const int INT_MAX
変数名
- Name
INT_MAX
役割
- Role
int 型の最大値です。
文法的定義
- Signature
const int INT_MIN
変数名
- Name
INT_MIN
役割
- Role
int 型の最小値です。
文法的定義
- Signature
const string EOL
変数名
- Name
EOL
役割
- Role
環境依存の改行コードです。CR, LF, CR+LF などの中から、実行中の環境に適した値を保持しています。
文法的定義
- Signature
const string CR
変数名
- Name
CR
役割
- Role
改行コード CR (0x0D) です。
文法的定義
- Signature
const string LF
変数名
- Name
LF
役割
- Role
改行コード LF (0x0A) です。
文法的定義
- Signature
const string READ
変数名
- Name
READ
役割
- Role
「読み込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string WRITE
変数名
- Name
WRITE
役割
- Role
「書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string APPEND
変数名
- Name
APPEND
役割
- Role
「追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string READ_TSV
変数名
- Name
READ_TSV
役割
- Role
「TSV読み込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string WRITE_TSV
変数名
- Name
WRITE_TSV
役割
- Role
「TSV書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string APPEND_TSV
変数名
- Name
APPEND_TSV
役割
- Role
「TSV追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string READ_CSV
変数名
- Name
READ_CSV
役割
- Role
「CSV読み込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string WRITE_CSV
変数名
- Name
WRITE_CSV
役割
- Role
「CSV書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string APPEND_CSV
変数名
- Name
APPEND_CSV
役割
- Role
「CSV追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string READ_BINARY
変数名
- Name
READ_BINARY
役割
- Role
「バイナリ読み込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string WRITE_BINARY
変数名
- Name
WRITE_BINARY
役割
- Role
「バイナリ書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string APPEND_BINARY
変数名
- Name
APPEND_BINARY
役割
- Role
「バイナリ追記書き込み」を行うファイル入出力モードです。open 関数で使用します。
文法的定義
- Signature
const string STDIN
変数名
- Name
STDIN
役割
- Role
標準入力に対してファイル入出力関数を使用するための、特別なファイルパスです。
文法的定義
- Signature
const string STDOUT
変数名
- Name
STDOUT
役割
- Role
標準出力に対してファイル入出力関数を使用するための、特別なファイルパスです。
文法的定義
- Signature
const string STDERR
変数名
- Name
STDERR
役割
- Role
標準エラー出力に対してファイル入出力関数を使用するための、特別なファイルパスです。
文法的定義
- Signature
const int UP
変数名
- Name
UP
役割
- Role
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 切り上げ 」を行う丸めモードです。round 関数で使用します。
文法的定義
- Signature
const int UP_SIGNIF
変数名
- Name
UP_SIGNIF
役割
- Role
有効数字の部分( いわゆる Significand part )の桁数を指定して、「 切り上げ 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 UP 」として試験導入されていたものです。
文法的定義
- Signature
const int DOWN
変数名
- Name
DOWN
役割
- Role
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 切り下げ 」を行う丸めモードです。round 関数で使用します。
文法的定義
- Signature
const int DOWN_SIGNIF
変数名
- Name
DOWN_SIGNIF
役割
- Role
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 切り下げ 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 DOWN 」として試験導入されていたものです。
文法的定義
- Signature
const int HALF_UP
変数名
- Name
HALF_UP
役割
- Role
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 half up 丸め 」を行う丸めモードです。round 関数で使用します。
文法的定義
- Signature
const int HALF_UP_SIGNIF
変数名
- Name
HALF_UP_SIGNIF
役割
- Role
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 half up 丸め 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 HALF_UP 」として試験導入されていたものです。
文法的定義
- Signature
const int HALF_DOWN
変数名
- Name
HALF_DOWN
役割
- Role
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 half down 丸め 」を行う丸めモードです。round 関数で使用します。
文法的定義
- Signature
const int HALF_DOWN_SIGNIF
変数名
- Name
HALF_DOWN_SIGNIF
役割
- Role
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 half down 丸め 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 HALF_DOWN 」として試験導入されていたものです。
文法的定義
- Signature
const int HALF_TO_EVEN
変数名
- Name
HALF_TO_EVEN
役割
- Role
ゼロを基準とする小数点以下の部分( いわゆる Decimal part )の桁数を指定して、「 half to even 丸め 」を行う丸めモードです。round 関数で使用します。
文法的定義
- Signature
const int HALF_TO_EVEN_SIGNIF
変数名
- Name
HALF_TO_EVEN_SIGNIF
役割
- Role
有効数字の部分( いわゆる Significand part )の桁数を指定として、「 half to even 丸め 」を行う丸めモードです。round 関数で使用します。このモードは、VCSSL 3.3 以前において「 HALF_EVEN 」として試験導入されていたものです。

関数 - Functions

文法的定義
- Signature
macro print(...)
関数名
- Name
print
役割
- Role
コンソールに文字列を出力します。引数は任意型であり、自動的に文字列型に変換されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、空白区切りで出力されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)出力内容
文法的定義
- Signature
macro println(...)
関数名
- Name
println
役割
- Role
コンソールに文字列を出力し、改行します。引数は任意型であり、自動的に文字列型に変換されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、空白区切りで出力されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)出力内容
文法的定義
- Signature
macro output(...)
関数名
- Name
output
役割
- Role
プログラムの処理結果を表示するための領域に、文字列を出力します。引数は任意型であり、自動的に文字列型に変換されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、空白区切りで出力されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)出力内容
文法的定義
- Signature
macro input(...)
関数名
- Name
input
役割
- Role
ユーザーから、任意文字列の入力を受け付けます。引数は任意型であり、自動的に文字列型に変換され、入力項目のメッセージとして表示されます。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。なお、最後の引数は、入力項目のデフォルト値として使用されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)入力項目のメッセージ(最後の引数はデフォルト値)
戻り値
- Return
(string型)ユーザーの入力値
文法的定義
- Signature
macro select(...)
関数名
- Name
select
役割
- Role
ユーザに選択肢を提示し、選択された項目を取得します。引数は任意型であり、自動的に文字列型に変換され、選択肢として表示されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)選択肢
戻り値
- Return
(string型)選択された値
文法的定義
- Signature
macro alert(...)
関数名
- Name
alert
役割
- Role
警告ウィンドウにメッセージを出力し、ユーザーがそれを了承するまで、プログラムの実行を待機します。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。なお、警告の意図のないメッセージの出力には、VCSSL 3.4以降からほぼ同機能の pop 関数が利用できます。今後、alert は警告の意図があるメッセージに対して使用する事が推奨されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)メッセージの内容
文法的定義
- Signature
macro pop(...)
関数名
- Name
pop
役割
- Role
popup 関数と同じものです。この関数は、data.Stack ライブラリの pop 関数と同一名称であったため、どちらを呼び出しているかをコード上でわかりやすくしたい場合のため、後に同機能の popup 関数が追加されました。なお、Stack ライブラリの pop 関数は型パラメータを持っており、現在のVCSSLでは型パラメータの省略はできないため、この関数とシグネチャが競合する可能性は、少なくとも現時点ではありません。この関数は互換目的でサポートされており、今後も引き続き使用できますが、混乱をなるべく避けるため、特に事情がなければ今後は popup 関数を優先的に使用する事が推奨されます。
文法的定義
- Signature
macro confirm(...)
関数名
- Name
confirm
役割
- Role
メッセージを出力し、ユーザーに 了承 / 拒否 の二択を提示します。引数を複数指定した場合、それがどのような形で出力されるかは処理系依存です。恐らく通常は、改行区切りで出力されます。
引数
- Arguments
(型) ... : (任意型、可変長引数)メッセージの内容
戻り値
- Return
(bool型)ユーザーに了承されれば true, 拒否されれば false
文法的定義
- Signature
string[ ] choose()
関数名
- Name
choose
役割
- Role
ユーザーにファイルを選択画面を提示し、選択されるまでプログラムの実行を待機します。
戻り値
- Return
(string[]型) 選択されたファイルのパス
文法的定義
- Signature
string[ ] choose(string message)
関数名
- Name
choose
役割
- Role
ユーザーにファイルを選択画面を提示し、選択されるまでプログラムの実行を待機します。
引数
- Arguments
(string型) message : ファイル選択画面のメッセージ
戻り値
- Return
(string[]型) 選択されたファイルのパス
文法的定義
- Signature
string[ ] choose(string message, string directory)
関数名
- Name
choose
役割
- Role
ユーザーにファイルを選択画面を提示し、選択されるまでプログラムの実行を待機します。
引数
- Arguments
(string型) message : ファイル選択画面のメッセージ
(string型) directory : ファイル選択画面が開かれた時の表示ディレクトリ
戻り値
- Return
(string[]型) 選択されたファイルのパス
文法的定義
- Signature
void beep()
関数名
- Name
beep
役割
- Role
ビープ音を鳴らします。ただし、実際に鳴らせるかどうかは環境に依存します。場合によっては、ビープ音でない音(オペレーティングシステムの警告音など)が鳴る事もあります。
戻り値
- Return
(void型)
文法的定義
- Signature
void beep(int repeat)
関数名
- Name
beep
役割
- Role
ビープ音を鳴らします。ただし、実際に鳴らせるかどうかは環境に依存します。場合によっては、ビープ音でない音(オペレーティングシステムの警告音など)が鳴る事もあります。
引数
- Arguments
(int型) repeat : 鳴らす回数
戻り値
- Return
(void型)
文法的定義
- Signature
void beep(int repeat, int wait)
関数名
- Name
beep
役割
- Role
ビープ音を鳴らします。ただし、実際に鳴らせるかどうかは環境に依存します。場合によっては、ビープ音でない音(オペレーティングシステムの警告音など)が鳴る事もあります。
引数
- Arguments
(int型) repeat : 鳴らす回数
(int型) wait : 鳴らす間隔(ミリ秒)
戻り値
- Return
(void型)
文法的定義
- Signature
void clear()
関数名
- Name
clear
役割
- Role
コンソールの内容をクリアします。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
戻り値
- Return
(void型)
文法的定義
- Signature
void hide()
関数名
- Name
hide
役割
- Role
コンソールを非表示にします。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
戻り値
- Return
(void型)
文法的定義
- Signature
void show()
関数名
- Name
show
役割
- Role
コンソールが非表示にされている場合、表示します。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
戻り値
- Return
(void型)
文法的定義
- Signature
int time()
関数名
- Name
time
役割
- Role
プログラム実行開始からの経過時間を、ミリ秒単位で返します。
戻り値
- Return
(int型) プログラム実行開始からの経過時間(ミリ秒)
文法的定義
- Signature
macro sleep(int milliSecond)
関数名
- Name
sleep
役割
- Role
プログラムの実行を一時停止します。
引数
- Arguments
(int型) milliSecond : 一時停止する時間(ミリ秒)
文法的定義
- Signature
void exit()
関数名
- Name
exit
役割
- Role
プログラムの実行を終了します。なお、この関数は、処理系にプログラムの終了をリクエストするものであり、必ずしも即時的に実行が終了される事が保証されるものではありません。この関数をコールするには、全てのループや分岐を抜けた後のプログラム最終行など、処理系がアイドリング状態となっているタイミングが理想的です。処理系が高速に処理を行っているタイミングでこの関数をコールすると、強制終了に近い状態となります。詳細は処理系の実装や最適化の方針などに依存しますが、処理系は、この関数がコールされた時点で、即時的に中断できないような一連の演算処理を行っている最中かもしれません。その場合はタイムラグが生じ、コール後も少しの間、実行が継続される場合があります。
戻り値
- Return
(void型)
文法的定義
- Signature
void exit(int code)
関数名
- Name
exit
役割
- Role
終了ステータスコードを指定して、プログラムの実行を終了します。なお、この関数は、処理系にプログラムの終了をリクエストするものであり、必ずしも即時的に実行が終了される事が保証されるものではありません。この関数をコールするには、全てのループや分岐を抜けた後のプログラム最終行など、処理系がアイドリング状態となっているタイミングが理想的です。処理系が高速に処理を行っているタイミングでこの関数をコールすると、強制終了に近い状態となります。詳細は処理系の実装や最適化の方針などに依存しますが、処理系は、この関数がコールされた時点で、即時的に中断できないような一連の演算処理を行っている最中かもしれません。その場合はタイムラグが生じ、コール後も少しの間、実行が継続される場合があります。
引数
- Arguments
(int型) code : 終了ステータスコード
戻り値
- Return
(void型)
文法的定義
- Signature
void reset(string programName, string args[ ])
関数名
- Name
reset
役割
- Role
処理系をリセットし、別のプログラムを実行します。
引数
- Arguments
(string型) programName : プログラム名またはパス
(string[]型) args : main関数に渡す引数
戻り値
- Return
(void型)
文法的定義
- Signature
macro error(...)
関数名
- Name
error
役割
- Role
エラーメッセージを出力します。エラーメッセージ出力後、プログラムの実行が終了されるか、継続されるかは、処理系に依存します。確実に終了させたい場合は、続けて exit をコールしてください。
引数
- Arguments
(型) ... : (任意型、可変長引数)エラーメッセージ
文法的定義
- Signature
macro assert(bool expectedCondition)
関数名
- Name
assert
役割
- Role
式の値を評価し、真であれば何も行わず、偽であればエラーメッセージを出力します。プログラムの実行は恐らく終了されます。この関数はテストに使用します。
引数
- Arguments
expression : 評価対象の式
文法的定義
- Signature
macro exec(...)
関数名
- Name
exec
役割
- Role
オペレーティングシステムのコマンド、または外部プログラムを、別プロセスで非同期で実行します。呼び出し元プログラムの実行は、処理の完了を待機しません。生成したプロセスと並列的に、実行を継続します。処理の実行を待機したり、標準入出力を制御したい場合は、Process ライブラリを使用してください。
引数
- Arguments
(string)コマンドや外部プログラムの絶対パス, : (任意型)引数1, (任意型)引数2, ...
戻り値
- Return
(int型)生成したプロセスの識別番号(プロセスID)
文法的定義
- Signature
macro system(...)
関数名
- Name
system
役割
- Role
オペレーティングシステムのコマンド、または外部プログラムを、同期実行します。処理が完了するまで、呼び出し元プログラムの実行は待機します。
引数
- Arguments
(string)コマンドや外部プログラムの絶対パス, : (任意型)引数1, (任意型)引数2, ...
戻り値
- Return
(int型)実行したコマンドや外部プログラムの終了ステータスコード
文法的定義
- Signature
macro alloc(...)
関数名
- Name
alloc
役割
- Role
配列の要素数を変更します。変更前後で、同じインデックスの要素は、同じ値に保たれます。
引数
- Arguments
(任意型)配列, : (int)左端次元の要素数, (int)次の次元の要素数, ..., (int)右端次元の要素数
文法的定義
- Signature
macro free(...)
関数名
- Name
free
役割
- Role
配列の全次元の要素数を 0 にします。
引数
- Arguments
(任意型)配列 :
文法的定義
- Signature
bool exists(string filePath)
関数名
- Name
exists
役割
- Role
ファイルが存在するか確認します。
引数
- Arguments
(string型) filePath : ファイル名またはパス
戻り値
- Return
(bool型) ファイルが存在すれば true, 存在しなければ false
文法的定義
- Signature
void mkdir(string directoryPath)
関数名
- Name
mkdir
役割
- Role
ディレクトリ(フォルダ)を新規生成します。ディレクトリが既に存在した場合は、何もしません。
引数
- Arguments
(string型) directoryPath : ディレクトリ名またはパス
戻り値
- Return
(void型)
文法的定義
- Signature
bool isdir(string filePath)
関数名
- Name
isdir
役割
- Role
ファイルがディレクトリかどうかを確認します。
引数
- Arguments
(string型) filePath : 確認対象ファイルのファイル名またはパス
戻り値
- Return
(bool型) ディレクトリであれば true, そうでなければ false
文法的定義
- Signature
string[ ] listdir(string directoryPath)
関数名
- Name
listdir
役割
- Role
ディレクトリ内のファイル名一覧を返します。
引数
- Arguments
(string型) directoryPath : ディレクトリ名またはパス
戻り値
- Return
(string[]型) ディレクトリ内のファイル名一覧
文法的定義
- Signature
macro rank(...)
関数名
- Name
rank
役割
- Role
配列の次元数を返します。例えば配列 a[11][28][32] に対して、rank(a) は 3 です。
引数
- Arguments
(型) ... : (任意型)次元数を知りたい配列
戻り値
- Return
(int型)配列の次元数
文法的定義
- Signature
macro length(...)
関数名
- Name
length
役割
- Role
配列の要素数を返します。第二引数には、要素数を知りたい次元を、左から 0, 1, 2, ... と数えたインデックスを指定します。例えば配列 a[11][28][32] に対して、length(a, 0) は 11 であり、length(a, 1) は 28 であり、 length(a, 2) は 32 です。
引数
- Arguments
(型) ... : (任意型)要素数を知りたい配列, (int)次元インデックス
戻り値
- Return
(int型)配列の要素数
文法的定義
- Signature
bool nan( float value )
関数名
- Name
nan
役割
- Role
float 型の変数または値が、NaN (非数) かどうか判定します。
引数
- Arguments
(float型) value : 判定したい変数または値
戻り値
- Return
(bool型) NaN であれば true, そうでなければ false
文法的定義
- Signature
bool inf( float value )
関数名
- Name
inf
役割
- Role
float 型の変数または値が、Inf (無限大) かどうか判定します。
引数
- Arguments
(float型) value : 判定したい変数または値
戻り値
- Return
(bool型) Inf であれば true, そうでなければ false
文法的定義
- Signature
string bin( int number )
関数名
- Name
bin
役割
- Role
int 型の変数または値を、2進数で表した文字列を返します。先頭には 0b のプレフィックスが付加されます。
引数
- Arguments
(int型) number : 2進数で表したい変数または値
戻り値
- Return
(string型) 2進数で表した文字列
文法的定義
- Signature
string oct( int number )
関数名
- Name
oct
役割
- Role
int 型の変数または値を、8進数で表した文字列を返します。先頭には 0 のプレフィックスが付加されます。
引数
- Arguments
(int型) number : 8進数で表したい変数または値
戻り値
- Return
(string型) 8進数で表した文字列
文法的定義
- Signature
string hex( int number )
関数名
- Name
hex
役割
- Role
int 型の変数または値を、16進数で表した文字列を返します。先頭には 0x のプレフィックスが付加されます。
引数
- Arguments
(int型) number : 16進数で表したい変数または値
戻り値
- Return
(string型) 16進数で表した文字列
文法的定義
- Signature
macro digit(arg)
関数名
- Name
digit
役割
- Role
varfloat 型または varcomplex 型の演算桁数を指定します。
引数
- Arguments
(型) arg : 桁数
文法的定義
- Signature
macro digit()
関数名
- Name
digit
役割
- Role
varfloat 型または varcomplex 型の演算桁数を取得します。
戻り値
- Return
桁数
文法的定義
- Signature
float round(float value, int digit, int mode)
関数名
- Name
round
役割
- Role
float型の値を、指定されたモードで、指定された桁数に丸めます。ただし、float型の値は、内部では2進数の浮動小数点数のデータとして保持されており、丸め処理は10進数基準で行われるため、2進/10進変換誤差についての留意が必要です。浮動小数点数の2進数と10進数の変換は、一般に有限の桁に収まらないケースがあり、微小な誤差が生じ得ます。そのため、float 値の内部データの値は、10進数ベースで想像している値とは僅かに食い違っている可能性があります。従って、対象値が丸め処理の切り上げ/切り下げの境界に非常に近い場合、一見すると奇妙な(しかし内部的には正しい処理の)結果となる場合があります。なお、float 値を文字列に変換したり print 関数で表示した結果と、この関数での丸め結果との対応が一見奇妙に思える場合もありますが、それは、前者においても内部で暗黙の丸め処理が行われるためです。もし、前者と同じ結果から、さらに追加で意図通り丸めた値が欲しい場合は、引数 value を string に変換した上で渡してください。
引数
- Arguments
(float型) value : 丸めたい値
(int型) digit : 丸めた後の桁数
(int型) mode : 丸めモード ( UP_SIGNIFDOWN_SIGNIFHALF_UP_SIGNIFHALF_DOWN_SIGNIFHALF_TO_EVEN_SIGNIF, UPDOWNHALF_UPHALF_DOWNHALF_TO_EVEN )
戻り値
- Return
(float型) 丸められた値
文法的定義
- Signature
string round(string value, int digit, int mode)
関数名
- Name
round
役割
- Role
string 型の値の内容を数値と見なして、指定されたモードで、指定された桁数に丸めます。この関数は、float 値を文字列に変換したり print 関数で表示した際と同じ内容(内部で暗黙の丸め処理が行われます)を基準として、さらに意図通り丸めたい場合などに使用します。float 型の値を直接丸める場合と比べて、2進/10進変換誤差の影響が少し異なる場合があります。詳細は、引数 value が float 型の場合の説明をご参照ください。
引数
- Arguments
(string型) value : 丸めたい値
(int型) digit : 丸めた後の桁数
(int型) mode : 丸めモード ( UP_SIGNIFDOWN_SIGNIFHALF_UP_SIGNIFHALF_DOWN_SIGNIFHALF_TO_EVEN_SIGNIF, UPDOWNHALF_UPHALF_DOWNHALF_TO_EVEN )
戻り値
- Return
(string型) 丸められた値
文法的定義
- Signature
complex round(complex value, int digit, int mode)
関数名
- Name
round
役割
- Role
complex型の値を、指定されたモードで、指定された桁数に丸めます。ただし、complex 型の実部と虚部の値は、内部では2進数の浮動小数点数のデータとして保持されており、丸め処理は10進数基準で行われるため、2進/10進変換誤差についての留意が必要です。詳細は、引数 value が float 型の場合の説明をご参照ください。
引数
- Arguments
(complex型) value : 丸めたい値
(int型) digit : 丸めた後の桁数
(int型) mode : 丸めモード ( UP_SIGNIFDOWN_SIGNIFHALF_UP_SIGNIFHALF_DOWN_SIGNIFHALF_TO_EVEN_SIGNIF, UPDOWNHALF_UPHALF_DOWNHALF_TO_EVEN )
戻り値
- Return
(complex型) 丸められた値
文法的定義
- Signature
varfloat round(varfloat value, varint digit, int mode)
関数名
- Name
round
役割
- Role
varfloat型の値を、指定されたモードで、指定された桁数に丸めます。
引数
- Arguments
(varfloat型) value : 丸めたい値
(varint型) digit : 丸めた後の桁数
(int型) mode : 丸めモード ( UP_SIGNIFDOWN_SIGNIFHALF_UP_SIGNIFHALF_DOWN_SIGNIFHALF_TO_EVEN_SIGNIF, UPDOWNHALF_UPHALF_DOWNHALF_TO_EVEN )
戻り値
- Return
(varfloat型) 丸められた値
文法的定義
- Signature
varcomplex round(varcomplex value, varint digit, int mode)
関数名
- Name
round
役割
- Role
varcomplex型の値を、指定されたモードで、指定された桁数に丸めます。
引数
- Arguments
(varcomplex型) value : 丸めたい値
(varint型) digit : 丸めた後の桁数
戻り値
- Return
(varcomplex型) 丸められた値
文法的定義
- Signature
void round(int mode)
関数名
- Name
round
役割
- Role
varfloat 型および varcomplex 型の演算における、デフォルトの丸めモードを指定します。なお、varfloat 型および varcomplex 型の丸め制御と、この関数の実装は、現在は試験的に導入されているものです。現時点では、あらゆる演算において指定通りに丸め制御が行われる事は、必ずしも保証されません。使用する際には、事前に検証を行って下さい。varfloat 型および varcomplex 型の丸め制御、及びこの round 関数の実装は、試験導入期間を経た上で、VCSSL 4 以降での正式導入を予定しています。
引数
- Arguments
(int型) mode : 丸めモード ( UP_SIGNIFDOWN_SIGNIFHALF_UP_SIGNIFHALF_DOWN_SIGNIFHALF_TO_EVEN_SIGNIF )
戻り値
- Return
(void型)
文法的定義
- Signature
float re( complex value )
関数名
- Name
re
役割
- Role
complex 型の実部を返します。
引数
- Arguments
(complex型) value : 実部を取得したい変数または値
戻り値
- Return
(float型) 実部
文法的定義
- Signature
float im( complex value )
関数名
- Name
im
役割
- Role
complex 型の虚部を返します。
引数
- Arguments
(complex型) value : 虚部を取得したい変数または値
戻り値
- Return
(float型) 虚部
文法的定義
- Signature
void re( complex value, float realValue )
関数名
- Name
re
役割
- Role
complex 型の実部を設定します。
引数
- Arguments
(complex型) value : 実部を設定したい変数または値
(float型) realValue : 実部の値
戻り値
- Return
(void型)
文法的定義
- Signature
void im( complex value, float imagValue )
関数名
- Name
im
役割
- Role
complex 型の虚部を設定します。
引数
- Arguments
(complex型) value : 虚部を設定したい変数または値
(float型) imagValue : 虚部の値
戻り値
- Return
(void型)
文法的定義
- Signature
varfloat re( varcomplex value )
関数名
- Name
re
役割
- Role
varcomplex 型の実部を返します。
引数
- Arguments
(varcomplex型) value : 実部を取得したい変数または値
戻り値
- Return
(varfloat型) 実部
文法的定義
- Signature
varfloat im( varcomplex value )
関数名
- Name
im
役割
- Role
varcomplex 型の虚部を返します。
引数
- Arguments
(varcomplex型) value : 虚部を取得したい変数または値
戻り値
- Return
(varfloat型) 虚部
文法的定義
- Signature
void re( varcomplex value, varfloat realValue )
関数名
- Name
re
役割
- Role
varcomplex 型の実部を設定します。
引数
- Arguments
(varcomplex型) value : 実部を設定したい変数または値
(varfloat型) realValue : 実部の値
戻り値
- Return
(void型)
文法的定義
- Signature
void im( varcomplex value, varfloat imagValue )
関数名
- Name
im
役割
- Role
varcomplex 型の虚部を設定します。
引数
- Arguments
(varcomplex型) value : 虚部を設定したい変数または値
(varfloat型) imagValue : 虚部の値
戻り値
- Return
(void型)
文法的定義
- Signature
macro save(string filePath, content)
関数名
- Name
save
役割
- Role
簡易ファイル出力関数です。string 変数の保持する内容を、ファイルに保存します。
引数
- Arguments
(string型) filePath : ファイル名またはパス
(型) content : ファイルに保存する内容
文法的定義
- Signature
void save(string filePath)
関数名
- Name
save
役割
- Role
簡易ファイル出力関数です。現在コンソールに表示されている内容を、ファイルに保存します。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も行われません。
引数
- Arguments
(string型) filePath : ファイル名またはパス
戻り値
- Return
(void型)
文法的定義
- Signature
string load(string filePath)
関数名
- Name
load
役割
- Role
簡易ファイル入力関数です。ファイルの内容を全て読み込み、そのまま文字列として返します。読み込み後、ファイルは自動的に閉じられます。
引数
- Arguments
(string型) filePath : ファイル名またはパス
戻り値
- Return
(string型) 読み込んだ内容
文法的定義
- Signature
string load()
関数名
- Name
load
役割
- Role
簡易ファイル入力関数です。現在コンソールに表示されている内容を取得し、そのまま文字列として返します。ただし、この関数の挙動は処理系依存です。例えば、コンソールの内容が、処理系に付属したウィンドウに表示されるような場合においては、恐らく期待した通りの結果が得られます。しかし、コンソールウィンドウを持たない、標準入出力ベースの処理系においては、恐らく何も得られません。
戻り値
- Return
(string型) コンソールから取得した内容
文法的定義
- Signature
int open(string filePath, string mode)
関数名
- Name
open
役割
- Role
ファイルを開き、固有の識別番号( ファイルID )を割り振って返します。引数 filePath には、通常はファイル名またはパスを指定しますが、代わりに STDINSTDOUT, STDERR を指定して標準入出力に読み書きする事も可能です。
引数
- Arguments
(string型) filePath : ファイル名またはパス
(string型) mode : ファイル入出力モード( "r" または READ、 "w" または WRITE、 "a" または APPEND、 "rtsv" または READ_TSV、 "wtsv" または WRITE_TSV、 "atsv" または APPEND_TSV、 "rcsv" または READ_CSV、 "rcsv" または WRITE_CSV、 "acsv" または APPEND_CSV、 "rb" または READ_BINARY、 "wb" または WRITE_BINARY、 "ab" または APPEND_BINARY
戻り値
- Return
(int型) ファイルID
文法的定義
- Signature
int open(string filePath, string mode, string textEncoding)
関数名
- Name
open
役割
- Role
ファイルを開き、固有の識別番号( ファイルID )を割り振って返します。引数 filePath には、通常はファイル名またはパスを指定しますが、代わりに STDINSTDOUT, STDERR を指定して標準入出力に読み書きする事も可能です。
引数
- Arguments
(string型) filePath : ファイル名またはパス
(string型) mode : ファイル入出力モード( "r" または READ、 "w" または WRITE、 "a" または APPEND、 "rtsv" または READ_TSV、 "wtsv" または WRITE_TSV、 "atsv" または APPEND_TSV、 "rcsv" または READ_CSV、 "rcsv" または WRITE_CSV、 "acsv" または APPEND_CSV、 "rb" または READ_BINARY、 "wb" または WRITE_BINARY、 "ab" または APPEND_BINARY
(string型) textEncoding : 文字コード( "Shift_JIS"、 "UTF-8"、 "EUC-JP" )
戻り値
- Return
(int型) ファイルID
文法的定義
- Signature
macro openw(...)
関数名
- Name
openw
役割
- Role
この関数は VCSSL 1.0 世代のものであり、open( filePath, "wtsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
文法的定義
- Signature
macro opencsvw(...)
関数名
- Name
opencsvw
役割
- Role
この関数は VCSSL 1.0 世代のものであり、open( filePath, "wcsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
文法的定義
- Signature
macro openr(...)
関数名
- Name
openr
役割
- Role
この関数は VCSSL 1.0 世代のものであり、open( filePath, "rtsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
文法的定義
- Signature
macro opencsvr(...)
関数名
- Name
opencsvr
役割
- Role
この関数は VCSSL 1.0 世代のものであり、open( filePath, "rcsv" ) と同等の機能でファイルを開きます。この関数は互換目的でサポートされています。
文法的定義
- Signature
void close(int fileID)
関数名
- Name
close
役割
- Role
ファイルを閉じます。この時点で、バッファされている書き込み内容は全てフラッシュされます。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(void型)
文法的定義
- Signature
void flush(int fileID)
関数名
- Name
flush
役割
- Role
ファイルのバッファされている書き込み内容をフラッシュします。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(void型)
文法的定義
- Signature
macro write(int fileID, ...)
関数名
- Name
write
役割
- Role
ファイルに内容を書き込みます。書き込み内容は任意型で、書き込み時に文字列に変換されます。書き込み内容を複数指定した場合、それがどのような形で書き込まれるかは、ファイル入出力モードに依存します。
"w" または WRITE モードの場合
書き込み内容が、そのまま連結されて書き込まれます。
"wtsv" または WRITE_TSV モードの場合
書き込み内容が、タブ文字区切りで連結されて書き込まれます。
"wcsv" または WRITE_CSV モードの場合
書き込み内容が、カンマ文字区切りで連結されて書き込まれます。
なおこの関数は、VCSSL2.1以前では改行されますが、2.2以降では改行されません。改行付きの機能は writeln 関数が提供します。
引数
- Arguments
(int型) fileID : ファイルID
(型) ... : (任意型、可変長引数)書き込み内容
文法的定義
- Signature
macro writeln(int fileID, ...)
関数名
- Name
writeln
役割
- Role
ファイルに内容を書き込み、改行します。書き込み内容は任意型で、書き込み時に文字列に変換されます。書き込み内容を複数指定した場合、それがどのような形で書き込まれるかは、ファイル入出力モードに依存します。
"w" または WRITE モードの場合
書き込み内容が、そのまま連結されて書き込まれます。
"wtsv" または WRITE_TSV モードの場合
書き込み内容が、タブ文字区切りで連結されて書き込まれます。
"wcsv" または WRITE_CSV モードの場合
書き込み内容が、カンマ文字区切りで連結されて書き込まれます。
なお、改行コードには、実行環境に適切なものが自動的に採用されます。もしも、LFCR などの特定の改行コードを使用したい場合は、この関数の代わりに write 関数を使用し、書き込み内容に LFCR を付加して書き込んでください。
引数
- Arguments
(int型) fileID : ファイルID
(型) ... : (任意型、可変長引数)書き込み内容
文法的定義
- Signature
string[ ] read(int fileID)
関数名
- Name
read
役割
- Role
ファイルの内容を全て読み込みます。戻り値は string 型配列ですが、これに読み込み内容がどのように格納されるのかは、ファイル入出力モードに依存します。
"r" または READ モードの場合
ファイルの内容がそのまま、要素数 1 の string 型配列に格納して返されます。
"rtsv" または READ_TSV モードの場合
ファイルの内容が、空白及び改行区切りで、string 型配列に格納して返されます。タブ文字と半角空白は同一視されます。
"rcsv" または READ_CSV モードの場合
ファイルの内容が、カンマ記号及び改行区切りで、string 型配列に格納して返されます。
CSV や TSV の読み込みでは、エンクロージャやデリミタの解釈は行われず、単純に区切り文字が存在する位置で区切られます。また、TSV ではタブ文字と半角空白は区別されません。このあたりの挙動を、より厳密に制御したい場合は、file.TextFile ライブラリを使用してください。なおこの関数は、VCSSL2.1以前では行単位の読み込みでしたが、VCSSL2.2以降から全体の読み込みに変更されました。行単位の、過去と同様の機能は readln 関数が提供します。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(string[]型) (string[])読み込み内容
文法的定義
- Signature
string[ ] readln(int fileID)
関数名
- Name
readln
役割
- Role
ファイルから一行の内容を読み込みます。戻り値は string 型配列ですが、これに読み込み内容がどのように格納されるのかは、ファイル入出力モードに依存します。
"r" または READ モードの場合
ファイルの内容がそのまま、要素数 1 の string 型配列に格納して返されます。
"rtsv" または READ_TSV モードの場合
ファイルの内容が、空白区切りで、string 型配列に格納して返されます。タブ文字と半角空白は同一視されます。
"rcsv" または READ_CSV モードの場合
ファイルの内容が、カンマ記号区切りで、string 型配列に格納して返されます。
なお、CSV や TSV の読み込みでは、エンクロージャやデリミタの解釈は行われず、単純に区切り文字が存在する位置で区切られます。また、TSV ではタブ文字と半角空白は区別されません。このあたりの挙動を、より厳密に制御したい場合は、file.TextFile ライブラリを使用してください。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(string[]型) (string[])読み込み内容
文法的定義
- Signature
string load(int fileID)
関数名
- Name
load
役割
- Role
ファイルの内容を全て読み込み、そのまま文字列として返します。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(string型) 読み込んだ内容
文法的定義
- Signature
string loadln(int fileID)
関数名
- Name
loadln
役割
- Role
ファイルから一行の内容を全て読み込み、そのまま文字列として返します。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(string型) 読み込んだ内容
文法的定義
- Signature
int countln(int fileID)
関数名
- Name
countln
役割
- Role
ファイルの行数をカウントします。
引数
- Arguments
(int型) fileID : ファイルID
戻り値
- Return
(int型) ファイル行数
文法的定義
- Signature
macro eval(string expression)
関数名
- Name
eval
役割
- Role
文字列を式として評価します。レキシカルスコープで、変数や関数へのアクセスも可能です。また、代入を行う事もできます。戻り値には、式の値が string 型配列に変換されて返されます ( 式の値が非配列であった場合は、戻り値の要素数は 1 となります )。string 型配列は、最も変換自由度の高い型であり、あらゆるプリミティブ型の配列と非配列に代入できます ( 非配列へは要素数が1の場合に限り可能です )。反面、繰り返し高速に評価したい場合、特に戻り値が int 型や float 型である場合においては、文字列を介する型変換がボトルネックとなります。そういった場合は、評価式の中で結果を変数に代入し、戻り値を利用せずに捨てる事で、ボトルネックを回避できます。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
式の値
文法的定義
- Signature
macro eval(string expression, literalType)
関数名
- Name
eval
役割
- Role
文字列を式として評価します。引数 1 個の eval 関数と異なるのは、式中でサフィックスが明示されていない数値リテラルを、どの型と解釈するか指定できる点です。例えば "1 / 2" の式は、通常は int 型同士の除算となるため、値は 0 です。これを float 型同士の除算と見なして 0.5 を得たい場合には、第二引数に float 型の値 ( 0.0 など ) を指定してください。なお第二引数は、型のみが意味を持ち、値は無視されます(しかしながら、初来的に何らかの意味づけが加えられる可能性もあるため、特に理由が無ければ 0 や 0.0 を指定する事が推奨されます)。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(string[]型)式の値
文法的定義
- Signature
macro feval(string expression)
関数名
- Name
feval
役割
- Role
文字列を式として評価し、値を float 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(float型)式の値
文法的定義
- Signature
macro feval(string expression, literalType)
関数名
- Name
feval
役割
- Role
文字列を式として評価し、値を float 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(flaot型)式の値
文法的定義
- Signature
macro ieval(string expression)
関数名
- Name
ieval
役割
- Role
文字列を式として評価し、値を int 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(int型)式の値
文法的定義
- Signature
macro ieval(string expression, literalType)
関数名
- Name
ieval
役割
- Role
文字列を式として評価し、値を int 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(int型)式の値
文法的定義
- Signature
macro ceval(string expression)
関数名
- Name
ceval
役割
- Role
文字列を式として評価し、値を complex 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(complex型)式の値
文法的定義
- Signature
macro ceval(string expression, literalType)
関数名
- Name
ceval
役割
- Role
文字列を式として評価し、値を complex 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(complex型)式の値
文法的定義
- Signature
macro beval(string expression)
関数名
- Name
beval
役割
- Role
文字列を式として評価し、値を bool 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(bool型)式の値
文法的定義
- Signature
macro beval(string expression, literalType)
関数名
- Name
beval
役割
- Role
文字列を式として評価し、値を bool 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(bool型)式の値
文法的定義
- Signature
macro seval(string expression)
関数名
- Name
seval
役割
- Role
文字列を式として評価し、値を string 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(string型)式の値
文法的定義
- Signature
macro seval(string expression, literalType)
関数名
- Name
seval
役割
- Role
文字列を式として評価し、値を string 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(string型)式の値
文法的定義
- Signature
macro vfeval(string expression)
関数名
- Name
vfeval
役割
- Role
文字列を式として評価し、値を varfloat 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(varfloat型)式の値
文法的定義
- Signature
macro vfeval(string expression, literalType)
関数名
- Name
vfeval
役割
- Role
文字列を式として評価し、値を varfloat 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(varfloat型)式の値
文法的定義
- Signature
macro vieval(string expression)
関数名
- Name
vieval
役割
- Role
文字列を式として評価し、値を varint 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(varint型)式の値
文法的定義
- Signature
macro vieval(string expression, literalType)
関数名
- Name
vieval
役割
- Role
文字列を式として評価し、値を varint 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(varint型)式の値
文法的定義
- Signature
macro vceval(string expression)
関数名
- Name
vceval
役割
- Role
文字列を式として評価し、値を varcomplex 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(varcomplex型)式の値
文法的定義
- Signature
macro vceval(string expression, literalType)
関数名
- Name
vceval
役割
- Role
文字列を式として評価し、値を varcomplex 型の非配列で返します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(varcomplex型)式の値
文法的定義
- Signature
macro evaluable(string expression)
関数名
- Name
evaluable
役割
- Role
式の内容が構文的に正しいかどうかを判定します。eval 関数は構文解析に失敗すると処理速度が低下するため、式を高速に繰り返し評価したい場合、事前にこの関数で式の正当性を確認しておく事が推奨されます。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
式が構文的に正しければ true, そうでなければ false
文法的定義
- Signature
macro evaluable(string expression, literalType)
関数名
- Name
evaluable
役割
- Role
式の内容が構文的に正しいかどうかを判定します。eval 関数は構文解析に失敗すると処理速度が低下するため、式を高速に繰り返し評価したい場合、事前にこの関数で式の正当性を確認しておく事が推奨されます。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
式が構文的に正しければ true, そうでなければ false
文法的定義
- Signature
macro evaltr(string expression)
関数名
- Name
evaltr
役割
- Role
文字列を式として評価し、処理系の内部処理情報を返します。内容は完全に処理系依存です。なお、利用できる式には処理系依存の制約があり、必ずしも通常の式評価と整合する内容を返すとは限りません。また、一般に副作用のある式には使用できません。この関数は、主に開発時やデバッグ時に使用します。
引数
- Arguments
(string型) expression : 評価する式
戻り値
- Return
(string[]型)処理系の内部処理情報
文法的定義
- Signature
macro evaltr(string expression, literalType)
関数名
- Name
evaltr
役割
- Role
文字列を式として評価し、処理系の内部処理情報を返します。内容は完全に処理系依存です。なお、利用できる式には処理系依存の制約があり、必ずしも通常の式評価と整合する内容を返すとは限りません。また、一般に副作用のある式には使用できません。この関数は、主に開発時やデバッグ時に使用します。
引数
- Arguments
(string型) expression : 評価する式
(string型) expression : サフィックスの付いていない数値リテラルに割り当てる型 ( の変数 )
戻り値
- Return
(string[]型)処理系の内部処理情報
文法的定義
- Signature
macro override(string functionName, string argumentType[ ], string functionCode)
関数名
- Name
override
役割
- Role
関数の処理内容を、実行時に変更します。eval 関数は、ローカル変数の宣言や、複数の文を実行できないため、そのような処理を動的評価で行いたい場合には、この関数を使用します。なお、この関数でできるのは、既存の関数の処理内容を変更する事のみであり、新しい関数を宣言する事はできません。
引数
- Arguments
(string型) functionName : 関数名
(string[]型) argumentType : 引数の型を文字列で記述した配列( 例えば "int" や "float" を格納 )
(string型) functionCode : 関数の(プログラムとしての)記述内容
文法的定義
- Signature
string lf()
関数名
- Name
lf
役割
- Role
環境依存の改行コードを返します。VCSSL 3 以降では、定数 EOL をそのまま改行コードとして使用できます。この関数は、関数コールのオーバーヘッドを無駄に要します。新しいプログラムでは 定数 EOL の使用が推奨されます。この関数は互換目的でサポートされています。
引数
- Arguments
環境依存の改行コード :
戻り値
- Return
(string型)
文法的定義
- Signature
string linefeed()
関数名
- Name
linefeed
役割
- Role
環境依存の改行コードを返します。VCSSL 3 以降では、定数 EOL をそのまま改行コードとして使用できます。この関数は、関数コールのオーバーヘッドを無駄に要します。新しいプログラムでは 定数 EOL の使用が推奨されます。この関数は互換目的でサポートされています。
引数
- Arguments
環境依存の改行コード :
戻り値
- Return
(string型)

イベントハンドラ - Event Handler

文法的定義
- Signature
void main( )
関数名
- Name
main
役割
- Role
いわゆる main 関数です。全モジュールのグローバル領域の処理(例えばグローバル定数の初期化など)が完了した時点で、自動的にコールされます。複数のモジュールにおいて main 関数が存在する場合、モジュールの読み込み順序に基づいて、最後に定義されたものだけがコールされます(この点は一般のイベントハンドラと異なります)。
戻り値
- Return
(void型)
文法的定義
- Signature
void main( string args[ ] )
関数名
- Name
main
役割
- Role
いわゆる main 関数です。全モジュールのグローバル領域の処理(例えばグローバル定数の初期化など)が完了した時点で、自動的にコールされます。複数のモジュールにおいて main 関数が存在する場合、モジュールの読み込み順序に基づいて、最後に定義されたものだけがコールされます(この点は一般のイベントハンドラと異なります)。
引数
- Arguments
args[] : コマンドライン端末などから、プログラムの起動時に指定された引数が、空白区切りで配列化されて渡されます。
戻り値
- Return
(void型)


スポンサーリンク



この階層の目次
お知らせ

各ソフトウェアをアップデート、リニアングラフのコマンド拡張やVCSSLの英語対応など
2024/02/05 - 各ソフトの一斉アップデートの内容をお知らせします。今回は、リニアングラフのコマンド機能を大幅拡張したのがメインです。また、VCSSLのメッセージ類の英語対応も行いました。

Vnano の Ver.1.1 で実装した反復計算高速化の内側
2024/01/17 - 前回のお知らせ記事の続編です。スクリプトエンジン Vnano の Ver.1.1 において実施した高速化を、エンジン内部の実装面から掘り下げて解説します。

スクリプトエンジン Vnano の Ver.1.1 を公開、同じ内容の反復実行が劇的に高速化
2023/12/22 - スクリプトエンジン Vnano の最新版を公開しました。同じ計算式やスクリプトを反復実行する速さが、大幅に向上しました。次期版リニアングラフ3D内での活用例を交えつつ、詳しく解説します。

新着
[公式ガイドサンプル] 各種の図形や画像を描画する

「VCSSL 2DCG開発ガイド」内のサンプルコードです。図形や画像などを描画します。
2022-12-16
角度の「度」とラジアンとを相互変換し、図示もするツール

45度などの「度」の値と、ラジアンの値とを相互に変換できるツールです。対応する角度の図示もできます。
2022-11-22
[公式ガイドサンプル] 立体モデルを回転させるアニメーション

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、アニメーションで回転させ続けます
2022-11-18
[公式ガイドサンプル] 立体モデルを回転させる

「VCSSL 3DCG開発ガイド」内のサンプルコードです。立体モデルを、指定した角度だけ回転させます。
2022-11-17
[公式ガイドサンプル] 四則演算の計算順序や、カッコを使った順序指定

「VCSSLスタートアップガイド」内のサンプルコードです。四則演算が計算される順序や、カッコを使って順序を指定する方法を例示します。
2022-10-31