上の画像は、、、

  • Shift_JISエンコードされた漢字の二バイト目には \(backslash) を含むことがあり*1、これが、Shift_JIS を使った OCaml 文字列のパースを邪魔します。ダメ文字問題として知られています。
  • OCaml toplevel の演算結果の表示では、コントロールコードや 0x80 以上のコードなど、表示に適切でない文字は \xxx の様にエスケープされます。これ自体は悪いことではありませんが、日本語を使った例で学習する初学者には不親切なようです。
  • MSVC版 OCaml バイナリ版に付属しているグラフィカルトップレベル ocamlwin.exe はデフォルトフォントが Courier なため、フォント設定を変えなければ日本語を表示できません。

そこで、

  • 文字列定数のレクサを改造して Shift_JIS ダメ文字中の \ をちゃんとパースできるようにしました。
  • Toplevel プリンタを改造して日本語部分はエスケープされないようにしました。
  • ocamlwin.exe のデフォルトのフォントを MS Pゴシックに変更しました。

で、スクリーンショットを撮りました。

追記

大駱駝という名前で公開しました。ダウンロードはこちら: http://jun.furuse.info/hacks/orakuda 。バイナリもあります。OCaml で手軽に日本語を使ってみたい Windows ユーザーにお勧めです。

*1:例えば、十ソ蚕構など