型と型クラス
9.1 静的型チェックと型推論
全然、Haskellと関係ないけど、型推論(type inference)のinfer。
今日のTOEICカレンダーの問題に出てきた単語だった。どうでもいいけど。
閑話休題。
型宣言を省略することが出来る、と聞いて連想するのが、RubyやSmalltalkなどの動的型言語。
これらの言語は型宣言を省略することが出来るというか、ない。
私の理解で恐縮ですが、これらの言語は全てC言語でいうところのvoid*、アドレスだと思います。
つまり何でも入る変数。
考えてみれば、数式を書くとき、いちいち型なんて指定しないのと同じだと思います。
Haskellもそれに近いんだけど、動的型言語と違って型宣言がないわけじゃない。
推論してくれる。だから型宣言することも出来る。
これも私の理解ですけど、オブジェクトのインターフェイス(メッセージ)が全てなオブジェクト指向言語にとって、
型ってあまり意味をなさないのかなぁ、と思います。
あるインターフェイスがあるかないか(呼び出せるか否か)が問題なのです。
ていうかなんの保証もなく呼び出しちゃう。
まさにDuck typingですね。これはこれでとても好きな思想です。
でもHaskellは型チェックが強力な言語と言われています。
これは思想云々の話じゃなく、バグを未然に防ぐための機能だと思います。
なんか俺論的な議論になってしまいました。すいません。
連休ぼけですかねぇ。