2004-04-03 [長年日記]
λ. Polymorphism is not set-theoretic
を読んだ。Polymorphic lambda calculus の集合論的なモデルが存在しない理由をこれまで vicious circle のためだと思い込んでたのだけど実は違った。集合の圏ではPと(P->B)->Bが同型にはならないのが原因。
2004-04-04 [長年日記]
λ. gtk2hs-0.9.4 (その2)
数日間使ってみた感想。
他の言語でgtk2を使ったことがあればあまり戸惑わずに使える。けど、中途半端にインターフェースを変更している箇所もあるので注意。たとえば boxPackStart :: (BoxClass b, WidgetClass w) => b -> w -> Packing -> Int -> IO ()
はgtk_box_pack_start(GtkBox *box, GtkWidget *child, gboolean expand, gboolean fill, guint padding)
のexpandとfillの二つの引数をPacking
という型の単一の引数にまとめてしまってる。
実装を見ると、c2hsを使ってFFI周りのコードをCのヘッダファイルから自動生成した上で、その上にHaskellっぽいインターフェースを被せてる。これでだいぶ省力化出来てるのは素晴らしい。
ただ、シグナル周りとかの設計は少々ダサい気がする。実装にはg_signal_connect_data()
を使うよりもGClosure
の仕組みを活用した方が良いんじゃないかというのもあるが、それよりもまずシグナルごとに onClicked, afterClicked :: ButtonClass b => b -> IO () -> IO (ConnectIdo b)
みたいな関数があるのってどうなのよ?
僕だったら、例えば以下のようなインターフェースにしたと思う。こういう設計にしなかったのには何か理由があるのだろうか。
signalConnect, signalConnectAfter :: obj -> (Signal obj t) -> t -> IO (ConnectId obj)
signalEmit :: obj -> (Signal obj t) -> t
signalName :: Signal obj t -> String
...
clicked :: (ButtonClass b) => Signal b (IO ())
2004-04-07 [長年日記]
λ. The Haskell 98 Foreign Function Interface 1.0: An Addendum to the Haskell 98 Report
幾つか確認したいことがあったので、一通り目を通す。
ただ、System Compliance Status でGHCとHugsが「conforms to the standard.」というのは嘘っぽいなぁ。どっちも現時点ではForeign.C.StringでUnicodeとlocaleのencodingを変換していない。
2004-04-10 [長年日記]
λ. John Hughes, "Generalising Monads to Arrows"
を読んだ。
本筋とは関係ないんだが、「data (Read x) => T x = ...
」というようにデータ型を定義しても、型「T a
」からa
がRead
のインスタンスだということを推論してくれないのは、僕もずっと不満に思ってた。(Restricted Datatypes in Haskell を参照)
[2005-03-27 追記] 圏論が何故プログラミングに役立つかということについての説明が良かったので、以下に引用しておく。
Some might find it surprising that something so abstract as category theory should turn out to be useful for something so concrete as programming. After all, category theory is, in a sense, so abstract as to be rather unsatisfying: it is `all definitions and no theorems', almost everything turns out to be a category if you look at it long enough, to say something is a category is actually to say very little about it. The same is true of most categorical concepts: they have very many possible instantiations, and so to say that something is, for example, a monad, is to say very little. This extreme generality is one reason why it is hard for the beginner to develop good intuitions about category theory, but it is hardly surprising: category theory was, after all, developed to be a `theory of everything', a framework into which very many different mathematical structures would fit. But why should a theory so abstract be of any use for programming?
The answer is simple: as computer scientists, we value abstraction! When we design the interface to a software component, we want it to reveal as little as possible about the implementation. We want to be able to replace the implementation with many alternatives, many other `instances' of the same `concept'. When we design a generic interface to many program libraries, it is even more important that the interface we choose have a wide variety of implementations. It is the very generality of the monad concept which we value so highly, it is because category theory is so abstract that its concepts are so useful for programming.
λ. 借りた本
- 『なぜ人はニセ科学を信じるのか—UFO、カルト、心霊、超能力のウソ』
- マイクル・シャーマー(Michael Shermer) [著], 岡田 靖史 [訳]
- 『よるねこ』
- 姫野 カオルコ [著]
- 小説すばる 2003年11月号
- -
2004-04-12 [長年日記]
λ. Hugs の Foreign.C.String での Unicode⇔locale の変換
現実逃避にパッチを作った。FFIで日本語を使うときに幸せになれるかも。でも、Hugsで動くライブラリでそういうのはなさげな罠。
- hugs98-Mar2005 用 (2005-03-23)
- hugs98-Mar2005-cstring-i18n.diff hugs98-Dec2003 用
- hugs98-Dec2003-cstring-i18n.diff
λ. 単位
あと体育と語学とクラスター科目の要件を満たすと、卒業に必要な単位がピッタリそろう事に気がつく。さて、どうするか。
2004-04-18 [長年日記]
λ. 博麗神社 例大祭
に行ってきた。10:30ごろに着いたのだが予想を遥かに越える長蛇の列が出来ててびびった。それでも、開場後15分くらいで中に入れた。カタログも当日買ったし全然事前にチェックしてなかったので、まずは永夜抄の体験版をゲットしてそれから他のサークルをぶらぶらと適当にまわった。12:30ごろには大半のサークルが完売状態だったようなので、そこで撤退。
ゲットしたもの:
- 『東方永夜抄 〜 Imperishable Night. 体験版Plus』
- 上海アリス幻樂団
- 『西行寺庭園厄災録 従者達の硝子細工』
- 『Thought of Dolls』
- 葉庭の出店
- 『東方 - TOUHOU』
- VISIONNERZ
- 『林檎飴』
- 農村 (味噌煮,ひはる)
- 『花祀(HANA-MATSURI)』
- びいどろぼっくす
- 『東方勘違い本 ロックでPinkでパンクで玩具で凡愚で瀟洒な僕らのメイド』
- みょふ〜会
- 『幽々子様が見てる』
- 石津 忠, 浅野 ちこ 日置
- 『東方奇闘劇』
- AQUA STYLE
- 『冥土行進曲』
- チルノ・ピック
- Fragile Online
2004-04-22 [長年日記]
λ. RDFからサイトを作るとか
RDFをXSLT等で整形して一つのページとして表示しているのは頻繁に見る。一つのページではなく、一つののサイトにするのはどうだろうか?、とふと思った。RDFのクラスに対して整形ルールを定義し、RDFの各ノードから個々のページを生成するとか……
λ. 萩野服部研新歓@八十の別家
なんとビックリ25人もの参加者。それから某サトレイ氏の恐ろしさの一端を理解する。
2004-04-25 [長年日記]
λ. "Categories for Everybody", Steve Awodey
圏論の入門。William Lawvere and Steve Schanuel, "Conceptual Mathematics: A First Introduction to Categories" を読み終わったぐらいの人がいたら薦めてみようか。一応、米田の補題とかAdjointとかMonadも扱ってるし。
【2006-09-29追記】本として出版され、PDFでの公開は停止してしまったようだ。出版は目出度いがWebで読めなくなるのは結構残念。
λ. 借りた本
- 『クリス・クロス—混沌の魔王』
- 高畑 京一郎 [著], きがわ琳 [イラスト]
- 『次元の秘密—自然単位系からDプレーンまで』
- 竹内 薫 [著]
- 『デッド・ゾーン (上)』
- スティーヴン キング (Stephen King) [著], 吉野 美恵子 [訳]
- 『第61魔法分隊』
- 伊都 工平 [著], 水上カオリ [イラスト]
- 小説すばる 2003年12月号
- -
2004-04-26 [長年日記]
λ. infinitive toybox
某氏に紹介される。「雪ちよちよ」の生ボーカルいいなぁ。
λ. バイト
の話がまとまる。
λ. CMS班ミーティング
名前は重要だけど、悪乗りは良くないと思った。あと、Rubyを紹介しているのだけど、思ったよりウケがよくて安心。
2004-04-27 [長年日記]
λ. "Language-Based Information-Flow Security", Andrei Sabelfeld and Andrew C. Myers
ふむ。
λ. 『政策分析入門』 E.ストーキー, R.ゼックハウザー
- 『政策分析入門』
- E.ストーキー(Edith Stokey), R.ゼックハウザー(Richard Zeckhauser) [著], 佐藤 隆三, 加藤 寛 [監訳]
「公共選択論」の教科書。いい本らしかったので買ってみる。
2004-04-28 [長年日記]
λ. "Institution Morphisms", Joseph Goguen, Grigore Rosu
メモ。難しい話はよくわからないが、Institution の基礎に関して割とよくまとまってる気がする。
λ. 研究計画書
書けねぇ。前の研究計画書にかいた事は熱意が冷めつつあるのだけど、それに代わるものが自分の中で育ってないのだよな。いざとなれば前の研究計画書を使いまわすのだが、しかしどうしたものか。
λ. 東方萃夢想 動作試験版
ダウンロードして試してみたのだけど、起動時にエラーが発生して遊べない。残念。
λ. コード
最近、自分のコードを書く余裕があまりない。書きかけで、ちゃんとまとめておきたいものは幾つかあるのだけど……
2004-04-29 [長年日記]
λ. ゲロゲロ。無様な醜態を晒してしまった。
λ. 東方永夜抄体験版スペルカード
Lunaticの残り4枚がなかなか回収できない。「高天原」以外は取れそうで取れないのが悔しい。ちなみに、「高天原」に至ってはまだ見たことすらなかったり。あぅー
- 隠蟲「永夜蟄居」
- 夜雀「真夜中のコーラスマスター」
- 野符「GHQクライシス」
- 未来「高天原」
λ. テレビ
めずらしくWWEなど見てみる。
λ. SISTER OF SCARLET
東方紅魔郷ExtraのFlash。完成版。
2004-04-30 [長年日記]
λ. 購入した本
- 『C++によるXML処理技法』
- ファビオ・アルシニェガス(Fabio Arciniegas) [著], 高橋 秀和 [訳]
λ. VC++.net
今度のバイトで使うVC++.netを受け取る。MSの開発環境を使うのは初めてなのだけど、結構使いやすく感じた。あと、C++の拡張機能が楽しげ。
ψ so1 [えーっと、コレ↓に出てくるcoherence spaceを使った表示的意味論は集合論ベースじゃないってコトなんですか..]
ψ さかい [ここでの話は、集合の圏そのもので解釈出来るかという話なので、coherence space を使った表示的意味論が集..]
ψ あぁ〜 [あぁ〜なんでやねん]
ψ さかい [なんでやねん、と言われても〜]