スーパー pre 記法
スーパーpre記法というのが OCaml にも対応しているらしい. サポートされている言語が妙に多いけど,Vim のシンタックスファイルから導出してるのかな. このリストとほぼ一致してるし.
それはさておき,せっかくなのでその記法を使って小ネタを一つ.
unix.cma を読み込まずに OCaml の対話環境*1を起動し,
Unix.time ();;
と入力してみると,
Objective Caml version 3.09.2 # Unix.time ();; Reference to undefined global `Unix'となる. これは「
Unix
なんて名前知らんよ」というメッセージな訳だが,
次のコマンドを入力してみると# let () = Unix.time ();; This expression has type float but is here used with type unitとなる. これは「
Unix.time ()
の型は float
だから unit
として使えないよ」というメッセージである.
つまり,Unix
なんていう名前は知らんとかいいながら,型はちゃんと知っているという奇妙な現象が….
うーん,スーパー pre 記法は対話環境には向いてなかったようだ.
*1:対話環境でなくても同じことが起こる.