[F#] MinCamlを移植してみる
コンパイラを実際に作ってみて実装に大分詳しくなってきました。暗黙的な型変換が含んでいることもあって、MinCamlよりもずっと行数が多くなっています。今なら難しいと思っていたMinCamlが簡単に思えるかもしれません。出来れば、より良い型推論を含んだ型チェックをしたいですし、簡潔で正確に型チェックが出来るならそのほうがよいです。
そこで、F#にMinCamlを移植してみています。
OCamlからF#への移植
F#はほとんどOCamlなので、移植は非常に楽です。OCamlのHaskell風シンタックスなのがF#なので、ライブラリの仕様が違う所を修正して、;やinを消してネストを合わせるだけで動きます。
Scala等の言語に移植するより遥かに早いスピードで移植できます。
ああ、これは良い物だなぁと思いました。
OCamlのlet in let inって書いたりmatch構文のネスト時にかっこを付けたりする所も汚いなぁと思っていた所なのですが、その辺が奇麗に書けるのもまた嬉しい点です。