201624日目の記事です。はじめにvvvvにはforやforeachといったループ(繰り返し/再帰)処理の構文がありません。Processingのコードをvvvvに書き換えるなんてことをやりますが、forなどでループ処理がされている部分でよく悩みます。似た挙動をするノードにFrameDelayがありますが、これは1フレーム前の値を持ってくるというものなのでプログラマが望むループ処理には使用できないでしょう。1つ残念なことにvvvvはサブパッチを再帰的に使用(入れ子)できません。ついての記述)なのでこの方法でループ処理を実現することも不可能です。今のところ自分のスタンスはプラグイン(C#)派です。いうかVLについてはドキュメントがまだ揃っていない(?)ようで詳細な使い方がよくわかりません。(将来的に改善されるのでしょうが)ノードにいちいちConfigure(型の定義など)を行ったり、エラーの原因が分かりにくいなど、なんだか好きになれる自信がありません、笑(誰か僕をVL派に懐柔してください。)そこで今回はvvvvオンリーでのループ処理について考えてみたいと思います。ループ処理が必要となる目的をいくつか挙げ、それをvvvvで実装してみます。いうご意見などあれば大変ありがたいです。配列のすべての要素に変更を加えるJavaScriptだとこう書くようなもの。3;}vvvvだとこう。Spectral)」ノードを使えば簡単にできます。vvvvではSlice単位ではなくSpread単位で何かをしてくれるノードにはSpectralというカテゴリが付いているようです。}}これもSpectral系のノードにあります。「Differential(微分)」、「Integral(積分)」ノードがあります。頭の片隅に入れておくといいかも。使い方は各ヘルプパッチを参考にしてください。}}Selectノードが役に立ちます。ある条件でループ処理を抜ける(break)/スキップする(continue)以下はcontinueの例。33]vvvvではこうなります。左側の案はわかりやすいけど、3を掛けなくてもいいスライスに対しても掛けてしまっています。右側は3を掛ける必要のあるスライスだけを分離して3を掛けた後に、もとのスプレッドに戻しています。左側の案だと無駄な計算増えるかなぁと思って右側の案を書いてみましたが、Selectは意外と重い模様...。ONにした状態、数字は処理時間。[[3,9],[9,15],[15,60],[21,9],[27,42],[33,39]]これ系をわかりやすく書くのはvvvvは得意そうです。SizeやスプレッドのBinと呼ばれる部分をいじれば対応できることが多いです。