追加のプリミティブ演算

この節では言語コアに属さないプリミティブ演算を規定する。言語コアに属するプリミティブ演算とは、パステルステッチのプログラミング言語としての機能に不可欠なプリミティブ演算のことである。ここでは、それに該当しないプリミティブ演算を扱う。言語コアに属さないプリミティブ演算は、実装によっては用意されていない場合がある。分裂を避けるために、この節で規定されているものと同等の機能を持つプリミティブ演算を持つ実装は、この文書の規定に従う必要がある。

ランダム

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

時間

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

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

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

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

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

環境変数

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

プログラムの終了

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

文字列カプセル

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

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