型は式をよい式と悪い式に分類する基準

というわけで、↑のエントリを 自分のモヤモヤの整理のために書いてみたのですが、それで解ったのは

「自分がどんなデータを受け付けるのかを知っているサブルーチン」にしても、「自分が何が出来るのかを知っているデータ」にしても、その目的は、データとプログラムの組み合わせを限定するところにその目的がある。

という文には違和感を感じてないけれど、その見出しが

型とオブジェクトの共通点

になっているのはとても気持ち悪く感じるということ。今回の「イヤぁな感じ」は単に前者のことを「型」と呼んでいる(風に読めてしまう)のが気持ち悪いな、というコトだけみたい。

話は変わりますが、「プログラミング in OCaml」 に

型は式をよい式と悪い式に分類する基準であり,良い式に付けられる属性である

という文言があって*1、実行前に式が良い式か悪い式かをチェックして、悪い式だったら typing error で実行しない、と言うようなことが書いてありました。

これは OCaml の型の説明なのですが、なんだかそれがとても良い型の説明だなぁと、ふと思ったり。

型がある理由には確かに「プログラマーの脳力を省力するため」はあると思うのですが、それ以上、もっと本質的なものとして「悪い式をヤッちゃわないため」に型があるんだ、というのをハッと思い出させてくれるので、この説明は好きです。

*1:正確には「プログラムに使われるデータの種類」という説明がまずあって、「型にはもう一つ、よく似ているけど違う意味がある」と前振りしてこの文言が出てきます。