配列

今日は@=>と=>の違いを勉強しようと思ったがよくわからない。マニュアルにはほぼ同じ作用とあり、ちがいはオブジェクトの参照を代入をとかなんかそんなときらしい。それで断念して配列に手をつけたんですが。

[ 1, 1, 2, 3, 5, 8 ] @=> int foo[];
<<<foo[1]>>>;

これで配列の2つ目の要素をプリントするんですが、以下のようにしてみると

[ 1, 1, 2, 3, 5, 8 ] @=> int foo[];
<<<foo>>>;

実行結果ですが配列を参照しアドレスを返します、多分ね。それじゃあ、[ 1, 1, 2, 3, 5, 8 ]を1度にプリントできないかと、、、ループを使い要素すべてにアクセスする方法じゃないとダメみたいです。他にあるかもしれませんが。
@=>ではなく=>ではできないかと試してみたわけです。エラーになります。それでは模写foo.ckっと。

sinosc s => JCRev r => dac;
.2 => s.gain;
.1 => r.mix;
[0, 2, 4, 7, 9, 11] @=> int hi[];
while( true )
{
   std.mtof( 45 + std.rand2(0, 3) * 12 + hi[std.rand2(0, hi.cap()-1] ) => s.freq;
   100::ms => now;
}

cap()は配列のサイズを返していますね。あいかわらずJCRevというフィルタってイイね。