19:27 08/02/29 不動点ふたたび LtU で "Data Types a la Carte" を読みました。これの鍵となる技は「型コンストラクタに対する不動点演算子」だと思うのだけど、 あれ、なんで俺これ考えたことなかったんだ…?と不思議に思うくらい楽しげなアイデアですね。てい。 // 不動点演算子 via テンプレート。Dで。 // // Haskell でいう"普通の"不動点関数 fix f = f (fix f) と同じようなもの // = の代わりに継承になっちゃってますけど、まあ似たようなものです class Fix!(alias F) : F!(Fix!(F)) {} 不動点演算の実装は本題ではないので、Yコンビネータみたいな無駄な複雑化はしない方針で。 さて、これを使って class Pair(T) { T left; T right; } 2個同じ型の値のペアを