コンテンツにスキップ

関数

概要

関数は「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" のいずれか。