Imaginantia

思ったことを書きます

データと制御構造

全てのデータは制御構造のためにあり、かつ制御構造はデータのためにある。

データはある種の秩序を持っているが、その秩序を「使う/消費する」という操作が制御構造である。 そして制御構造を動かすにはそのきっかけとなる始まりのデータが必要である。


最も顕著なのが bool で、これは false と true という「2通り」という概念を表現する。 この秩序を「消費する」もの、それが if である。

私達は条件分岐をしたい。それならば、bool という仲介を使うことで確かにそれが実現できる。 bool が元々持っているというのなら、 if を使うことでこれを強い意味で消費することができる。


基本的なfor文は配列のための構造である。for(int i=0;i<N;i++) の形式のループを書くとき、その背後にはある(certain)配列が存在するはずである。

だから配列が自身の長さを知らないのはおかしい

また、配列を消費するのがfor文であるということは、配列を構成するには別の構文があるべきである。そうすると iota がほしくなってくる。 for文は広すぎるので目的に丁度合った構造があるべき、という話になる。


「構成方法」と「消費方法」が対を成してデータを表現する、ことを実現するものとして inductive definition がある。 そうすると自然数が「回数が決められたループ」であることがわかる。そして自然数は配列の特殊例になる。

生産と消費という構造は至る所にある。