-
Notifications
You must be signed in to change notification settings - Fork 2
定義済みプロシージャ一覧
Snowman-s edited this page Apr 11, 2024
·
19 revisions
定義参照の優先順位は、「現在スコープの名前空間」>「1つ上位スコープの名前空間」> ... > 「このページの『定義済みプロシージャ』」= 「リテラルプロシージャ」です。
変数の内容には <変数名> でアクセスできます。このため、変数とプロシージャの名前空間は共有されています。
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
<変数名> |
<無し> | 記述された変数の内容を返す | 変数の内容 |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
正規表現 (\+|-)?[0-9]+
|
<無し> | 記述された整数を返す | 記述された整数 |
正規表現 ".*"
|
<無し> | 記述された文字列を返す | 記述された文字列(先頭・末尾の" を除く) |
true |
<無し> | true などの真偽値を返す | true |
false |
<無し> | false などの真偽値を返す | false |
|
<無し> | ボイドを返す | ボイド |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
+ |
(a: int, b: int) | 加算 | a, b の加算 |
- |
(a: int, b: int) | 減算 | a, bの減算 (a - b) |
* |
(a: int, b: int) | 乗算 | a, bの乗算 |
/ |
(a: int, b: int) | 商 | a, bを除算し、その商 (a / b) |
% |
(a: int, b: int) | 余り | a, bを除算し、その余り (a mod b) |
= |
(a: any, b: any) | 等価判定 | aとbが等価ならばtrue、異なるならfalse |
> |
(a: int, b: int) | 超過の検査 | a > b ならばtrue、そうでないならfalse |
< |
(a: int, b: int) | 未満の検査 | a < b ならばtrue、そうでないならfalse |
>= |
(a: int, b: int) | 以上の検査 | a >= b ならばtrue、そうでないならfalse |
<= |
(a: int, b: int) | 以下の検査 | a <= b ならばtrue、そうでないならfalse |
and |
(a: boolean, b: boolean) | a and b | aもbも true ならばtrue、そうでないならfalse |
or |
(a: boolean, b: boolean) | a or b | aかbが true ならばtrue、そうでないならfalse |
xor |
(a: boolean, b: boolean) | a xor b | aかbのいずれか一方が true ならばtrue、そうでないならfalse |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
strcat |
(a:str, b:str) | 文字列連結 | a, b の連結 |
to str |
(value:any) | 文字列化 | valueを文字列にしたもの |
str to int |
(value:str) | 文字列の数値化 | valueを整数値にしたもの |
str to bytes |
(value:str) | 文字列のバイト列化 | valueをUTF8でバイト列にした整数リスト |
bytes to str |
(bytes:list) | 文字列のバイト列化 | bytesを UTF8 バイト列として文字列化したもの |
split str |
(origin:str, spliter:str) | 文字列分割 |
origin.split(spliter) なる文字列リスト |
\n |
<無し> | 改行文字 | 改行文字 (0xA) |
\r |
<無し> | キャリッジリターン | キャリッジリターン (0xD) |
\t |
<無し> | 水平タブ | 水平タブ (0x9) |
\0 |
<無し> | ヌル文字 | ヌル文字 (0x0) |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
listing |
<可変長: any, any, ...> | リスト化 | 引数リテラルをその順で持つリスト |
[] |
(list:list, index:int) | list の index 番目の要素 (0開始) | list[index] |
len |
(list:list) | リスト長 | list の要素数 |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
seq |
<可変長: any, any, ...> | 順次処理 (実際には、引数の中で最後のものを返すだけです) | 引数の最後のリテラル |
for |
(times: int, var: str, child: Block) | times 回 childブロックの実行を行う。回数はvar変数に保存される (var = 0, 1, 2, ..., times-1) | ボイド |
while |
(cond: Block, child: Block) | 「cond を実行した結果がtrueなら、childを実行する」を繰り返す | ボイド |
if |
(cond: bool, then: any, else:any) | cond が true ならthenを返し、false ならelseを返す | 選ばれた方のリテラル |
if0 |
(cond: any, then: any, else:any) | cond が0ならthenを返し、0でないならelseを返す | 選ばれた方のリテラル |
ifn0 |
(cond: any, then: any, else:any) | cond が0でないならthenを返し、0ならelseブロックを返す | 選ばれた方のリテラル |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
<変数名> |
<無し> | 変数の値を返す(getの糖衣構文) | 変数の値 |
get |
(var:str) | var変数の値を返す | 変数の値 |
defset |
(var:str, from: any) | 変数を var という名前で1つ上のスコープに定義し、fromを代入する | ボイド |
set |
(var:str, from: any) | var という名前を名前空間から探し、var変数をそのスコープに上書き定義し、fromを代入する | ボイド |
defproc |
(name:str, block: block) | name という名前のプロシージャを1つ上のスコープに定義する。それは、引数を $args と$0, $1, ... に入れてから block を実行するものとなる | ボイド |
export |
(name:str) | name という名前を名前空間から探し、それと同じ名前、内容を2つ上のスコープで再定義する | ボイド |
reexport |
(child:any) | 現在の名前空間の要素(すなわち、child からエクスポートされた物)それぞれについて、それと同じ名前、内容を1つ上かつ2つ上のスコープで再定義する | <childそのもの> |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
print |
(a:any) | aを標準出力する | ボイド |
println |
(a:any) | aを標準出力し、その後に改行を出力する | ボイド |
read line |
<無し> | 標準入力から一行読み込み、両端をtrimしたものを返す | 読んだ文字列 |
cmd |
(cmd_name:str, <可変長: str, str, ...>) | cmd_name という名前の外部コマンドを、以降の文字列リテラル引数を引数として実行 | コマンド実行時の標準出力を文字列化したもの |
名前 | 引数 | 説明 | 返り値 |
---|---|---|---|
exec |
(block:block, <可変長: any, any, ...>) | block 引数を置き換えたかのように実行する。ただし、その前に引数を $args と$0, $1, ... に入れる | block の返り値 |
include |
(path: str) | 現在のファイル位置からの相対パスとして path を解釈、そのファイルをコンパイルし、その結果ブロックを置き換えたかのように実行する | <ファイルの内容による> |
- チュートリアル
- アドバンスド
- その他仕様