追加のホスト演算

この節ではコア言語に属さないホスト演算を規定する。コア言語に属さないホスト演算は、実装によっては用意されていない場合がある。分裂を避けるために、この節で規定されているものと同等の機能を持つホスト演算を持つ実装は、この文書の規定に従うべきである。

ランダム

get random numbermain プリミティブ演算は main 引数を取る。main 引数の型は自然数である。0 以上で、main 引数で指定された自然数よりも小さい自然数を、等確率に返す。また、get continuous random numbermain プリミティブ演算は引数を取らず、0 以上 1 未満の一様分布する浮動小数点数を返す。乱数のシードはインタープリターの実行を開始する前に初期化される。

時間

make timermain プリミティブ演算はタイマーカプセルを返す。タイマーカプセルは以下のメソッドディスクリプターを使用できる。

メソッドディスクリプター 引数 戻り値 機能
typemain main (ベクトル) ブーリアン main 引数が timermain 有名ベクトルであるとき true を返す。
clearmain (なし) (なし) 計測している時間を 0 に戻す。
nowmain (なし) 浮動小数点数 タイマーカプセルが生成されてから、または clear メソッドが実行されてからの経過時間を得る。単位は秒である。1 秒未満の時間は浮動小数点数の小数部で得られる。

プログラムに渡された引数

get program argumentmain プリミティブ演算は自然数の main 引数を取る。このプリミティブ演算は、プログラムに渡された引数のうち、main 引数で指定されたインデックスのものを文字列型で返す。get number of program argumentsmain プリミティブ演算は引数を取らず、プログラムに渡された引数の数を自然数型で返す。

ホスト言語が C++ であるとき、プログラムに渡された引数とは、main 関数の argc 引数と argv 引数に相当する。

環境変数

get environment variablemain プリミティブ演算は文字列型の main 引数を取る。このプリミティブ演算は main 引数で指定された環境変数の値を文字列型で返す。指定された環境変数が存在しないならば、ブーリアン型の false を返す。

プログラムの終了

exitmain プリミティブ演算はプログラムを終了する。このプリミティブ演算は main 引数を取る。この引数は省略可能であり、省略されなければ自然数である必要がある。main 引数の値は親プロセスに渡される。main 引数を省略したときは、親プロセスには 0 が渡される。

文字列カプセル

文字列カプセルは文字列を格納したカプセルである。make string capsulemain プリミティブ演算は空の文字列カプセルを返す。文字列カプセルは以下のメソッドディスクリプターを使用できる。

メソッドディスクリプター 引数 戻り値 機能
typemain main (ベクトル) ブーリアン main 引数が stringmain 有名ベクトルであるとき true を返す。
clearmain (なし) (なし) 格納されている文字列を空文字列にする。
appendmain main (文字列) (なし) 格納されている文字列の末尾に文字列を追加する。
getmain (なし) 文字列 格納されている文字列を返す。
sizemain (なし) 自然数 文字列のバイト数を返す。