JaneStreet coreを使ってみた

多相なSetが使いたかったので、Janestreet coreを試してみた。

一番分かりやすい変化は、mapとかがラベル付き引数を取るようになっている。

val map : 'a list -> f:('a -> 'b) -> 'b list

なので標準ライブラリと同名でインタフェースが違うモジュールがたくさんあるので、open Core.Stdは危険だと思う。
自分は、

module Set = Core.Std.Set

とした。

あとコンパイルにはThreadsライブラリを有効にする必要がある。

多相Setの他にも、興味深いモジュールがいくつかあるので、そのうち色々試してみようと思う。quickcheck.mlとかワクワクするよね。