補足4: print 関係

例: 上級編: フォーマット文字列 (C言語のprintf文と同様)

補足5: 日本語の文字列の扱い

コメントの中では日本語文字が自由につかえるが、データとしての文字列の中 にも日本語を使う場合(使うだけなら、いきなりそう書けばよいのだが)、 表示が乱れてしまう。それを修復する方法は以下の通り。 たとえば EUCコードを表示できる端末で EUCコードの文字列を x という変数 にいれた場合、単純に x を表示すると、文字化けだが、以下のおまじないを すると、正しく日本語の文字で表示される。
#  let x = "わたし" ;;
  val x : string = "\164\239\164\191\164\183"
# let print_non_escaped_string ppf = Format.fprintf ppf "\"%s\"";;
val print_non_escaped_string : Format.formatter -> string -> unit = 
# #install_printer print_non_escaped_string ;;
# x ;;
- : string = "わたし"
# 
意味としては、 上記のような設定を何もしない場合は、「文字列をISO-8859-1符号化と見なしてエスケープ文字を いれた出力をしようとする」ために文字化けをおこすので、 上記の設定は、このような(迷惑な)エスケープをしないようにする、というこ とらしい。(このあたりの詳細を調べた人は補足してほしい。)
亀山 幸義 (kam[at]cs.tsukuba.ac.jp; #を@に変えてください)