この記事は F# Advent Calendar 2014の21日目の記事です。昨日はc0hamaさんの「Linux で F# を始める」でした。 いきなり弁解から入りますが、この記事は「Hindley-Milner型推論アルゴリズムをGroovyで書いてみた」というid:uehajさんの記事を単にF#で写経しました。という話をします。 動機 そもそもなんでそんなことをしようと思ったのか、 今年のICFPC2014でSECDマシン用のコンパイラを作る課題が出てmini-ML文法の独自DSLを作る。 その言語がMLっぽい文法のくせに型検査がなくて開発効率が悪かった。 よし、型検査を入れよう。ついでに型推論も入れよう。 ネットで調べると日本語のコメント付きですげーわかりやすいブログ発見。 →とりあえず、すぐに試せるF#で書き写してみよう。 という感じで作業していたら、テストが通るようになったの