ocaml-bitstring で bitstring を生成する

8 月からは OCaml をちょこちょこやろう

やるやる詐欺になっていて @camlspotter に見放されていた OCaml を少し真面目に始めました。まずは bitstring について学んでいく感じ。

使いそうな関数を覚えるところから。Python の bitstring はある程度覚えたので、OCaml はそれと比較しつつ。もともとが Erlang のバイナリパターンマッチなので感覚的には同じ感じ。

やりたいことはバイナリ生成とバイナリのパース。

今日はバイナリの生成のほう。

BITSTRING を使えば bitstring が作れます。

let a = 10
let b = Bitstring.zeroes_bitstring 32
let c = Bitstring.empty_bitstring
let d = Bitstring.bitstring_length c
let bits =
  BITSTRING {
    a : 8;
    b : 32 : bitstring;
    c : d : bitstring
  }

Erlang だとこんな感じ融通が利く感じですね。

A = 10,
B = <<0:32>>,
C = <<>>,
Bits = <<A:8, B/binary, C/binary>>.