とくにあぶなくないRiSKのブログ

危ないRiSKのブログだったかもしれない。本当はRiSKだけどググラビリティとか取得できるIDの都合でsscriskも使ったり。

メンバと配列

仮に型が無いあるいは緩い言語を考える。

Object.MemberFunc();
Object.MemberVar = huga;
Object.At(10) = hoge;
Object[10] = hoge;
Object.[10] = hoge;

配列だって,メンバの一種と考えれば

Object.10 = hoge;

で11番目の要素がhogeの値になっていいじゃん。
シンタックス上の問題はここでは無視。

型という概念ををぶちこわす。

Cでいう派生型すらぶちこわす。
Object = hoge; と Object[0] = hoge; が同じ事にすれば,配列型すら消し去れる。
オブジェクトはそれだけで,配列(リストその他データ構造)でもあると。

定数すら配列の一部

1[1] の値は何か?
1 と 1[0] が同じなのであれば,1 の次の要素 2 が 1[1] の値としてふさわしいと思う。(デフォルトではね。)
イテレータを書けば奇数の数え上げとかもできればおもろいね。

if (1.next == 3) puts("true");
if (1[1] == 3) puts("true");