HappyOCaml

タプルの第2要素にのみ関数を適用したい

タプルの第2要素にのみ関数を適用したいことがよくあると思います。Janestreet coreのTupleモジュールにはこれをやる関数が用意されています。 # Core.Tuple.T2.map2;; - : f:('a -> 'b) -> ('c, 'a) Core.Tuple.T2.t -> ('c, 'b) Core.Tuple.T2.t = <fun> # Core</fun>…

OCamlで_による桁区切り

OCamlでもPerlやRubyみたいに_で数字を区切れるんだぜ。 # 1_000;; - : int = 1000 # 1_000.;; - : float = 1000. マスクパターンみたいな数字が長くなる場合、これを使うとだいぶ読みやすくなるよ。

レコードの名前空間

モジュールAの中でレコードを宣言する。 module A = struct type t = {a:string; b:string} end 各フィールド名はモジュールに属するので、このレコードを作るには次のようにしないといけない。 let f () = { A.a="foo"; A.b="bar"; } でも、全部のフィール…