型と型クラス

9.1 静的型チェックと型推論


全然、Haskellと関係ないけど、型推論(type inference)のinfer。
今日のTOEICカレンダーの問題に出てきた単語だった。どうでもいいけど。


閑話休題
型宣言を省略することが出来る、と聞いて連想するのが、RubySmalltalkなどの動的型言語。
これらの言語は型宣言を省略することが出来るというか、ない。
私の理解で恐縮ですが、これらの言語は全てC言語でいうところのvoid*、アドレスだと思います。
つまり何でも入る変数。
考えてみれば、数式を書くとき、いちいち型なんて指定しないのと同じだと思います。


Haskellもそれに近いんだけど、動的型言語と違って型宣言がないわけじゃない。
推論してくれる。だから型宣言することも出来る。


これも私の理解ですけど、オブジェクトのインターフェイス(メッセージ)が全てなオブジェクト指向言語にとって、
型ってあまり意味をなさないのかなぁ、と思います。
あるインターフェイスがあるかないか(呼び出せるか否か)が問題なのです。
ていうかなんの保証もなく呼び出しちゃう。
まさにDuck typingですね。これはこれでとても好きな思想です。


でもHaskellは型チェックが強力な言語と言われています。
これは思想云々の話じゃなく、バグを未然に防ぐための機能だと思います。


なんか俺論的な議論になってしまいました。すいません。
連休ぼけですかねぇ。