部分実装

反復と状態#

現在のCNLでは、回数を制限したRepeat Zoneで状態を更新できます。NodeのRepeat Input/Repeat Outputと、Codeのrepeat_zoneは同じ構造を表します。

function increment(state: Float, delta: Float): Float {
  return state + delta;
}

function main(): Float {
  return repeat_zone(increment, 1, 4, 2);
}

この例の結果は9です。初期値1から、2を足す処理を四回行います。

repeat_zone(step, 初期値, 回数, 固定入力...)の順に書きます。stepの最初の入力が前回の状態、その後ろが固定入力です。stepの戻り値は状態と同じ型にします。回数は現在の実装で受け付ける、検証済みの静的な非負整数です。ゼロ回なら初期値を返します。

このstepには反復番号を自動で渡しません。一般のrepeatとはstepの契約が異なるので、名前だけを置き換えないでください。複数の独立した状態、動的な回数、反復番号の公開、一般のfor・whileは残る実装です。

有限Kernelの係数を順番に扱うfold_kernelもあります。順序を持つ状態更新であり、順序を無視する合計や任意のノード循環とは区別します。Nodeでの操作はRepeat Zoneの使い方を参照してください。

このページを編集GitHubへのアクセス権が必要です。

CompNode Guide · 日本語製品ドキュメント仕様と実装範囲は各項目で区別しています。

ドキュメントを検索

検索語を入力してください。

    ↑ ↓ で結果を移動、Enter で開く · 検索はこの端末内だけで実行されます。