2002-11-21 [長年日記]
λ. 借りた本
- 『富豪刑事』
- 筒井康隆[著]
- 『ブギーポップ・アンバランス ホーリィ&ゴースト』
- 上遠野浩平[著] 緒方剛志[イラスト]
λ. デフレ対策は財政政策で行うべきなのか?
フィリップス曲線とオーカンの法則を使って、デフレからの脱出に必要な財政支出の量を推定している。なるほど、オーカンの法則が定量的な分析に使えるというのはこういう意味だったのか。
また、1930年代の大恐慌時のデフレからの脱出に寄与したのは、財政出動よりはむしろ金融緩和政策であった事が明らかになっているそうだ。1930年代の話は人によって言ってることが結構違うので、ちゃんとデータを示して主張しているのが素晴らしい。
λ. ブレスオブファイアⅤ ドラゴンクォーター
カプコンの人が雑誌に「ⅤはⅢのバージョンアップ、もしくは完成形」というような事を書いていた。僕の想像もあながち間違いではなかったのかも知れない。
λ. Template metaprogramming for Haskell
2週間くらい前に印刷してたのを今頃になって読んだ。結構面白いし、かなり強力。
ところで、全然関係ないですけど、テンプレートいえば除数が2の巾乗かどうかで、コンパイル時にシフト演算と除算を使い分けるってのは楽しげですね。
λ. malloc(0)
4) malloc(0) in glibc returns a valid pointer to something(!?!?) while in uClibc calling malloc(0) returns a NULL. The behavior of malloc(0) is listed as implementation-defined by SuSv3, so both libraries are equally correct. This difference also applies to realloc(NULL, 0). I personally feel glibc's behavior is not particularly safe.
とあるが、何故glibcの振る舞いがsafeでないと感じるのか良く分からなかった。C++のnewは0バイトに対しても有効なポインタを返すことになっているので、mallocがそうであったとしても何の不都合も無いように思える。
λ. チューリングの不動点演算子
Y' = (λx.λf.f(x x f)) (λx.λf.f(x x f)) = λf.f((λx.λf.f(x x f)) (λx.λf.f(x x f)) f) = λf.f(Y' f)
この Y' をチューリングの不動点演算子というそうだ。
【2006-04-23】 ちなみに、Haskellではこれは以下のように定義することが出来る。 こうして表現するとカリーの不動点演算子(Y-Combinator)と比較し易いな。
newtype T a = PsiInv{ psi :: T a -> a } fix :: (a -> a) -> a fix = g (PsiInv g) where g :: T ((a->a)->a) -> (a->a) -> a g x f = f (psi x x f)