今まで extlib とかまともに使ってませんでした

という告白。OCaml ってガシガシ自分で書いちゃうけど、あとでライブラリを探すとそのものずばり見つかっちゃうよねなんていうはなしを今日してたんですが、何となく同意。ML 演習の時にライブラリの存在を教えてもらわなかったせいで、最後までみんな List.map とか自前で実装してたなぁというはなし。なぜその存在を疑わなかったのかは未だに謎なのですが。

ExtHogehoge くらいは使うんですが、Std.print の存在を今日初めて知りました。

# Std.print 10;;
10
- : unit = ()
# Std.print [10;20;30];;
[10; 20; 30]
- : unit = ()
# Std.print (Hashtbl.create 10);;
(0, (0, 0, 0, 0, 0, 0, 0, 0, 0, 0))
- : unit = ()
#

おお。これはすごい。デバッグに便利そうだ。

怖くてそこまで(底まで)どっぷり使ってないからなんですが、OCaml は未だに知らないことがたくさん。Python を書いてから OCaml に戻ると Hashtbl.find と書くのが流石に億劫になるので、camlp4 をついにひもといてみたものの、さっぱり動かず凹んでるところ。チュートリアルのサンプルとかは動くんだけどなぁ。たぶん、自分の書いた拡張の方に分岐してくれてないんだろうけど、どうやって書いたらいいのかわからない。エラーも出ない。うーん、流石に厳しい。