Haskellは型推論を備えた言語であり、静的型付けでありながら型を明記しなくても、型を推測してコンパイルすることができる。この点は動的型付けでダックタイピングなRubyとは対極である。 しかし、静的型付けという性質上、型が推測できない場合は明示的に型を指定してやる必要があり、それをするのが型注釈という機能である。今回はHaskellの型推論と型注釈の使い方について整理してみる。 Read型は文字列を受け取りReadのインスタンスの型の値を返すインタフェースを実装している。それがread関数である。GHCiでread関数の型を確認してみると、以下のとおりになっている。