2001-06-13
λ. そうそう。「小泉内閣メールマガジン」に登録。今さらだけど。
λ. あうー、今日もTODOをこなす予定。Gimp-RubyのTile周りのバグもそろそろ潰さないとな。つうか、俺スケジューラのバギーなPriority Queueをまずフィックスしろって感じっすか? まったくですよ。面倒なものは知らぬ間に最低の優先順位にniceされてたりしてダメすぎだもんな。はぁ。
λ. 昼
3時起床。
λ. 「記号を喰う魔女」
というタイトルを見て、魔女に喰われた記号が消えてしまうんなら、表現できない命題が発生するんでは? そのうち「魔女」自体も表現できなくなったりして。;-) …とかちょっとだけ思った。微妙にSlayersを思い出す。
λ. クラスで呑み
今日は人数が少なかったけど、かえって落ち着いてて楽しかった。
2002-06-13
λ. 自然言語論 構文解析実験
文脈自由文法なんてどうということはないのだけど、日本語の品詞名がわからんよ。連用句ってなんだっけって感じ。
λ. endofunctor
日本語で書くと自己関手かな? domainとcodomainが同じ圏であるようなfunctorっす。
2003-06-13
λ. Linear Logic
線形論理についてちょっと調べる。
λ. 今日の向井研
先週話すつもりだった、最小不動点に関するイントロダクションを話してみる。
λ. 夕食
片山さんとニューオリ。鶏肉のトマト煮スパゲティ。
2006-06-13
λ. evaluate a
と a `seq` return a
の違い
Control.Exception
の evaluate :: a -> IO a
と evaluate' a = a `seq` return a
で定義した evaluate' :: a -> IO a
の振る舞いは異なる。evaluate ⊥ ≠ ⊥ = evaluate' ⊥
。しかし、これがControl.Exception
モジュールにあるのは何でだろうね。
λ. 今日の IT system
- Ghost Researcher
- 修論をブログで書く。Web 2.0
2008-06-13
λ. また国債買った
去年の8月に利付国庫債券(5年)(第65回)を買った。このときは表面利率1.5%で、その後の募集では利率が下がっていたのだけど、今日から募集している利付国庫債券(5年)(第72回)では表面利率が1.5%に戻っていたので、また少し買ってみた。
2009-06-13
λ. “Data types á la carte” by Wouter Swierstra
を読んだ。これは以下を使って、いわゆる Expression Problem を解決する話。
- 明示的な不動点の構成
- data Expr f = In (f (Expr f))
- シグニチャ関手の埋め込みを表す型クラス
- class (Functor sub, Functor sup) ⇒ sub :<: sup where inj :: sub a → sup a
- 定義したい関数毎の型クラス
例えば、式の型に乗算を追加して、それを扱えるように評価関数を拡張するには、以下のようなものを書くだけで良い。
data Mul x = Mul x x instance Functor Mul where fmap f (Mul x y) = Mul (f x) (f y) -- スマートコンストラクタ infix 7 ⊗ (⊗) :: (Mul :<: f) ⇒ Expr f → Expr f → Expr f x ⊗ y = inject (Mul x y) instance Eval Mul where evalAlgebra (Mul x y) = x*y
ちょっと、「へぇ」と思ったのは、data Term f a = Pure a | Impure (f (Term f)) で定義されるモナド Term f は自由モナドだけど、Term自身もモナドの圏から関手の圏への忘却関手の左随伴になっているという意味で自由、という話。
あと、オーバーラップするインスタンスを使うから Haskell 98 じゃないと言っているけど、そもそも f :<: g という多引数の型クラスを使っている時点で Haskell 98 ではないだろと思った。