型は式をよい式と悪い式に分類する基準
というわけで、↑のエントリを 自分のモヤモヤの整理のために書いてみたのですが、それで解ったのは
「自分がどんなデータを受け付けるのかを知っているサブルーチン」にしても、「自分が何が出来るのかを知っているデータ」にしても、その目的は、データとプログラムの組み合わせを限定するところにその目的がある。
という文には違和感を感じてないけれど、その見出しが
型とオブジェクトの共通点
になっているのはとても気持ち悪く感じるということ。今回の「イヤぁな感じ」は単に前者のことを「型」と呼んでいる(風に読めてしまう)のが気持ち悪いな、というコトだけみたい。
話は変わりますが、「プログラミング in OCaml」 に
型は式をよい式と悪い式に分類する基準であり,良い式に付けられる属性である
という文言があって*1、実行前に式が良い式か悪い式かをチェックして、悪い式だったら typing error で実行しない、と言うようなことが書いてありました。
これは OCaml の型の説明なのですが、なんだかそれがとても良い型の説明だなぁと、ふと思ったり。
型がある理由には確かに「プログラマーの脳力を省力するため」はあると思うのですが、それ以上、もっと本質的なものとして「悪い式をヤッちゃわないため」に型があるんだ、というのをハッと思い出させてくれるので、この説明は好きです。
*1:正確には「プログラムに使われるデータの種類」という説明がまずあって、「型にはもう一つ、よく似ているけど違う意味がある」と前振りしてこの文言が出てきます。