2008-01-23から1日間の記事一覧

ヴァリアントの応用:多相的ヴァリアント

多相的関数が型情報をパラメータ化できるのと同じように,ヴァリアントの定義の一部をパラメータ化することができる。 # type 'a mylist = Nil | Cons of 'a * 'a mylist;; type 'a mylist = Nil | Cons of 'a * 'a mylist'a がパラメータ化された部分。この…

多相的レコード

多相的な定義はレコードでもできる。次の定義は,既存のデータに「位置情報」を付け加える,というもの。 # type 'a with_location = {loc_x : float; loc_y : float; body : 'a};; type 'a with_location = { loc_x : float; loc_y : float; body : 'a; }文…