追記: この記事を書いてから早2年弱。今は数式のほうがわかりやすいなあと思うようになりました。 これは何? この記事は、最近 Hindley Milner (Algorithm W) 型推論を理解したばかりの私が、型推論のことをなるべくわかりやすく解説するものです。 簡略化したOCamlのようなコードが登場します。 わかりやすさ重視で書いていくつもりなので、専門用語(自由変数とか)はあまり出てきません。 間違いなどあったらコメントしていただけると幸いです。 まずは単相から ここからは図を使って説明していきます。(ビジュアルなほうがわかりやすいハズ) とても簡単な例 以下にとても簡単なコードを示します。 見ればわかりますが、xの型はintですね。 ですが、どのようにしてintだとわかったのでしょうか。 すでにわかっていることを書き出しだしてみました。リテラルの右肩を見てください。 1の型は当