2002-03-23
λ. いつものメンバでボーリングと飲み。ボーリングで「森喜朗」という名前で登録しようとしたら「森」としか入れてくれませんでした。
λ. 読書
- 『ぷにぷに☆ぽえみぃ 〜小林伝説〜』
- 黒田洋介[著]
2003-03-23
λ. 頭が冴えて眠れなくて、結局徹夜してしまった。朝食をとってからもう一回温泉に入って、それから旅館を後に。
λ. Re: functor category とデータ型
眠れなかったので、つまらないことでも考えてみた。
「data GRose f a = GBranch a (f (GRose f a))」というデータ型に対して「∀f g a b. (∀x. f x -> g x) -> (a -> b) -> (GRose f a -> GRose g b」という型のmap関数を定義するには、
type Hom{[ * ]} a b = a -> b type Hom{[ k->l ]} f g = ∀x. Hom{[l]} (f x) (g x) map{| k->l |} t :: ∀a b. (Hom{[k]} a b) -> (Hom{[l]} (t a) (t b))
という型を考えれば良いと思ったのだけど、これだと「map{| (*->*)->*->* |} GRose :: ∀f g. (∀x. f x -> g x) -> (∀x. GRose f x -> GRose g x)」となってしまう。型構築子がカリー化されていることの当然の帰結でこれはこれで正しいのだけど、こんな型の関数があってもあまり役にはたちそうにない。最初の関数の型を得るには、
type Hom{[ * ]} a b = a -> b type Hom{[ k->l ]} f g = ∀x. Map{[l]} (f x) (g x) type Map{[ * ]} a b = Hom{[*]} a b type Map{[ k->l ]} f g = ∀a b. (Hom{[k]} a b) -> (Map{[l]} (f a) (g b)) map{| k->l |} t :: Map{[k->l]} t t
とすれば良さそうな気がするけど、なんつーか、びみょー。
λ. 十国峠
「十国峠大声大会 - 富士山に吠えろ」というバカっぽい催しをやってて面白かった。ちなみに今年は第二回で、前回の優勝者は115ホンだったとか……
λ. ゼロ金利
今日の毎日新聞朝刊の、玉置和宏氏の「酸いも辛いも - 「最後の貸手」の麻薬」という論説によると、日銀のゼロ金利政策は「国債金利が急上昇したため政府の圧力で一時的に金利をゼロにした」ものだそうですよ(笑)
λ. 借りた本
- 『イリヤの空、UFOの夏 その1』
- 秋山 瑞人 [著] 駒都 えーじ[イラスト]
- 『虹の解体—いかにして科学は驚異への扉を開いたか』(UNWEAVING THE RAINBOW - Science, Delusion and the Appetite for Wonder)
- リチャード・ドーキンス(Richard Dawkins) [著], 福岡 伸一 [訳]
- 『奇跡を信じて』
- ニコラス・スパークス(Nicholas Sparks) [著], 天馬 龍行 [訳]
- 『文学部唯野教授』
- 筒井 康隆 [著]
- 『D - 双影の騎士 2』
- 菊地 秀行 [著]
λ. ハンニバル
論議をよんだあのシーンを楽しみにしてたのだけど、やっぱカットされちゃったのね。きたさんによると昨日の編集は最悪編集らしいし、やっぱ原作を読もうかあなぁ。
2005-03-23
λ. 卒業式
λ. 半落ち
泣いた。
λ. Hugs の Foreign.C.String での Unicode⇔locale の変換パッチを更新
Hugs の Foreign.C.String での Unicode⇔locale の変換を行うためのパッチ を hugs98-Mar2005 用に更新。
2006-03-23
λ. Typed Logical Variables in Haskell. Koen Claessen, Peter Ljunglöf
を読んだ。
論理型言語をHaskellに埋め込む話。そのために必要なのは論理変数とバックトラッキングで、型のある論理変数を実現するのにSTRefを使っている。バックトラキングはバックトラックを実装するモナドトランスフォーマーをSTの上に重ねて実現。STRefに書き込む部分では、バックトラックするときに元の値に戻すようにしておく。まあ、当たり前の方法を当たり前に実装したという印象。
バックトラッキングを実装するモナドトランスフォーマーは簡単な実装が示されているだけで、効率的な実装については Ralf Hinze の論文を参照とのこと。その辺りは Backtracking, Interleaving, and Terminating Monad Transformers とも比較してみるべきか。
2008-03-23
λ. The Disciplined Disciple Compiler (more than lambdas)
Disciple is an explicitly lazy dialect of Haskell which supports destructive update, computational effects, type directed field projections and some other useful things.
- Uses a typed core language which includes effect, closure, region and mutability information.
- This extended type information is used to allow code-transformation style optimizations in the presence of side effects and mutable objects.
- Compiles via standard C99, so is highly portable.
- Compiles cleanly on linux-x86 and darwin-x86 (tested on Mac OS X 10.5.2)
- Is in a usable alpha state.
[Haskell-cafe] ANN: The Disciplined Disciple Compiler - alpha 1 より。 面白そう。
(後で書く)