関数¶
概要¶
関数は「0個以上の引数を取り、0個以上の候補から1つの出力を返す処理」として定義される。引数は _argc(引数の数)と _argv[n](引数配列)でアクセスする。
基本構造¶
システム関数は load、unload、request の3つ。ユーザーはカスタム名で関数を追加定義できる:
request { hello }
hello { "Hello World" }
関数は再帰をサポートし、引数はカッコで渡す:
combine("Hello", "World")
combine { _argv[0] + " " + _argv[1] }
選択方式¶
| 方式 | 説明 |
|---|---|
| ランダム(デフォルト) | 出力候補からランダムに選択 |
nonoverlap |
前回と同じ候補が連続しないように選択 |
sequential |
候補を順番に出力し、ループする |
array |
すべての候補を汎用配列にまとめて返す |
void |
内部コードを実行するが出力を生成しない |
all(Tc567-1) |
すべての候補を連結して1つの文字列にする |
last(Tc567-1) |
最後の候補を選択する |
修飾子¶
_pool: ネストされたブロックを親レベルの候補と同等に扱い、確率分布を均等にする。
melt_: 汎用配列を使って並列出力効果を生成する。
ネスト・出力確認¶
ネストした波括弧 { } で階層的な選択を構成できる。-- 出力確認マーカーで候補をグループ化し、各グループから1つを選んで最終出力を構成する:
"Hello" / "Perfect" -- " World" / "th"
結果: "Hello World"、"Hello th"、"Perfect World"、"Perfect th" のいずれか。