上の画像は、、、
- 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:例えば、十ソ蚕構など