クラス

ChucKのソース"chuck_lang.cpp"を読むと配列のメンバはcap、size、erase、findだけです。おまけにeraseとfindは引数に文字列しかダメなので、例えばhairetu.erase(0)として最初の要素を消したりはできません、エラーになります。もちろん配列の操作は音楽的にも便利ですし、配列を逆順にしたりは必要なので自分で作っておこうと考えたのです。後で前回のブログで作った関数なども加えたりしてみます。

class Marray
{
   fun float[] reverse( float arr[])
   {
       float rev[arr.cap()-1];
       for(0 => int i; i < arr.cap()-1; i++)
       {
          arr[arr.cap()-1-i] => rev[i];
       }
       return rev;
   }
   fun float[] rand(float arr[])
   {
       float ran[arr.cap()-1];
       for(0 => int i; i < arr.cap()-1; i++)
       {
          arr[std.rand2(0, arr.cap()-1)] => ran[i];
       }
       return ran;
   }
}
Marray ma;
ma.reverse([1.0, 2.0, 3.0, 4.0]) @=> float matest[];
<<<matest[0]>>>;

配列を逆順にするのとランダムにするのと。今後いろいろ追加したり直したりしたいなと。