2012-12-01から1ヶ月間の記事一覧

OCamlと順序付き線形型で効率のよいXML処理 (to be continued)

この記事は OCaml Advent Calendar 2012 の 24日目の記事です。 が、実際にアップロードしたのは2013年1月18日です。 本当はもっと実用的なネタを書く予定だったのですが、飽きた ので、いっそ思い切り趣味に走った記事を書くことにしました。追記: 動作す…

最強OCamlでセッション型を実現

この記事は OCaml Advent Calendar 2012 の 18日目の記事です。OCamlでセッション型を実装した、というお話です。ちょっと時間がないので簡潔に書いています。 ソースはこちら セッション型 セッション型とは: 通信チャネルの型です プライベートな二者間の…

OCamlで使える同値再帰型 (equi-recursive types) は恐ろしいけど、すごい

この記事は OCaml Advent Calendar 2012 の 17日目の記事です。同値再帰型が何であるか知りたい方は、今後発売される TAPL日本語版を読むと良いと思います(私も翻訳しています。*1)。 Wikipedia英語版にもありますね。 同値再帰型は、再帰型の定式化の方法…

第一級モジュールでジェネリックなSet操作

この記事は OCaml Advent Calendar 2012 の 8日目の記事です。昨日のエントリでは無理矢理 'a t の形で扱える Setモジュールを作りましたが、これには欠点があり、 'a t型をもつ各集合で、'aの同値性の付け方が異なってしまいます。 昨日の記事に @garriguej…

第一級モジュールでSetの多相性を復活させてみよう

この記事は OCaml Advent Calendar 2012 の 7日目の記事です。OCaml 3.12より導入され、4.00でさらに便利になった 第一級モジュール (First-class modules)を使った小技を紹介します。ある種の単相的に定義された抽象データ型(ADT)を多相的にするという技で…