2005-08-10 [長年日記]
λ. 人狼審問 : (723)小麦畑の村
また負けたー(T_T) それにしても色々な意味でアリエナイ村だった。
- 農夫 グレン
- >ユージーン
この人狼審問に、ありえない展開などあんまり無い!
(5ボス戦スタート)
- 個人的反省点
-
- 囁き洩れを素直に囁き洩れと思えずに占ってしまった点
- 占い師の真偽が人狼に判明して早期に襲撃されるリスクを軽視していた。 囁き洩れと信じきれなくても思い切って吊るべきだった。
- 委任トラップの過信
-
4日目の開票結果で白確定への票が残り狼側と同じ数だけあり、投票ミスをしたと名乗り出る村人もいなかったので、それが狼側の票だと思い込んでしまった。そして、委任トラップ先の人への疑いを解いてしまった。(>>4:109 の「おお、委任先はセシリアさんでしたか。実は僕はセシリアさんを疑っていたのですが……考え直すのです……」)
実際には自分の投票ミスに気づいていなかった村人がいて、委任トラップ先の人が人狼だった。
- 関連リンク
2005-08-20 [長年日記]
λ. RHG読書会::東京 Revolution::ふつうのLinuxプログラミング
相変わらず濃い集まりだった。
2005-08-21 [長年日記]
λ. ジェネリクス・クイズ
これは型変数のvarianceの問題。JavaのArrayListでは型変数が正の位置と負の位置の両方に現れるため、ArrayListはこの型変数についてcovariantかつcontravariantでなくてはならず、結果として型変数はどちらの向きにも変化できない。よって、StringとObjectの関係をArrayList<String>とArrayList<Object>の関係にliftすることは出来ない。
もし、型変数が正の位置にしか現れないのであれば ArrayList<String> IS-A ArrayList<Object> として問題ないし、負の位置にしか現れないのであれば ArrayList<Object> IS-A ArrayList<String> として問題ない。
(追記) 正負の位置は鷲見さんの考えで合ってます。単に「関数の戻り値と引数」と書かないのは、負の位置では正負が反転するので、そこに関数型があるとそこでは対応が逆になるから。例えば「(A -> B) -> C」という型では、A,Cが正の位置で、Bが負の位置。
ψ sumim [そういうことでしたか。テクニカルタームは一見、単純に言い換えられるようで(ならば…と、私のような素人にはモヤモヤした..]
2005-08-23 [長年日記]
λ. ラップトップのHDDの調子が悪い
ラップトップ(Let's note CF-T1)のHDDの調子が悪い。休止状態から復元するときに読み取りエラーが頻発している感じで、復元できない。けど、普通に起動する分には平気だし、休止状態にするときも何も問題ない。あと、チェックディスクしても不良セクタが見つからないだけでなく、読み取りエラーが起こっているような様子もなかった。良く分からん。
LLDNの直前なのに困ったものだ。いまから修理に出してたら間に合わないし、とりあえずLLDNが終わるまでは何とかごまかすか。でも休止状態から復元できないのは不便だ……
あと、このHDD(TOSHIBA MK4020GLS)は容量が40GBしかないから、自分でもっとデカイ容量のHDDを買ってきて取り替えようかとも思ったけど、なにやら難しそうだ。
2005-08-25 [長年日記]
λ. 今日のorz
LLDNのプログラムからリンクされてないなぁと思って確認したら、送ったメールが 550 User unknown でエラーになってたというオチ。なんで今日まで気づかなかったんだ俺。orz
λ. 人間や生物や生態系を設計したやつは余程のバカだね
メモ。へー、そうなのか。面白い。
λ. ファンクタ(functor)とは
- http://d.hatena.ne.jp/yoriyuki/20050821#p3
- http://d.hatena.ne.jp/lethevert/20050822
- http://d.hatena.ne.jp/yoriyuki/20050822#p1
- http://www.jmuk.org/d/?path=2005/08/22#d22t03
私もファンクタの原義については知らなかったので、向井さんと同じく目から鱗だった。
MLのfunctorは確かに圏論の関手として解釈できないこともない。moduleのsignatureは型の名前と値の名前で構成されているので、適当な操作を施せば圏として解釈できる。moduleはこの圏から通常のデータ型と関数からなる圏への関手の一種。そういった関手の全体は圏になる*1ので、MLのfunctorは、あるsignatureのmoduleからなる圏から、別のsignatureのmoduleからなる圏への関手。 もっとも、それを意図してfunctorと名づけられているかと言われれば微妙な気はするけど。
(2005-09-03 追記) Computational Category Theory の 3.5.1 Functors computationally に次のように書いてあった。
The word `functor' is rather overused, occurring not only in category theory but also as programming constructs in languages like Prolog and ML (the latter is related to the categorical notion of functors).
(2005-09-04 追記) そういや、Prologのfunctorは「引数を与えられることにより式を構成する構文的な要素」 の意味か。
*1 ダイアグラムの圏のようなもの
2005-08-27 [長年日記]
λ. Lightweight Language Day and Night (通称:LLDN)
とても楽しかった。
soutaroさんやsumimさんに直接会えて嬉しかった。w_oさんにも会ってみたかったなぁ。
自分の発表に関しては、ヘタなプレゼンですまんとしか言いようがない。orz 私の発表資料は http://www.tom.sfc.keio.ac.jp/~sakai/talks/LLDN/ を参照。それと、ラムダ計算とかチャーチ数について簡単に知りたい人は ラムダ計算ABCを読むと良いと思う。
(2005-10-11 追記) 飲み会で『Googleや「はてな」と同じくらいの技術をもっているところは他にもあるのに、彼らだけが注目され需要が集中しているのは納得がいかん』という話があったけど、彼らはブランドを構築し維持するために相応の投資をしてきたわけで、その正当な結果と思わなくもない。よくわからんけど。
2005-08-28 [長年日記]
λ. クロージャ
もちろん、Haskellでも出来ますよ。
ioCounter :: IO (IO Integer) ioCounter = do ref <- newIORef 0 return $ do modifyIORef ref (1+) readIORef ref test = do c <- ioCounter c >>= print -- => 1 c >>= print -- => 2
【2006-03-28 追記】 鷲見さんの sumim’s smalltalking-tos の 「Perl6 あなどれじ。クロージャ記述の短さ対決!」というエントリのコメントで、このコードを元に増分を毎回指定できるようにしたバージョンが紹介されていた。面白い。
2005-08-29 [長年日記]
λ. HDD(Seagate ST3250823A)購入
銀座まで行ったついでに、HDDを購入しに秋葉原へ。そういや、秋葉原に一人で行くのは初めてだ。どの店で何を買ったら良いかわかんなかったので、適当に見つけた店で適当に Seagate ST3250823A というのを買った。¥12,700なり。デスクトップのHDDをこいつに交換。ddで古いハードディスクの内容を丸ごとコピーして、parted, fdisk, ntfstools 等で適当にパーティションを編集。これで、ラップトップのデータをバックアップしておくスペースが出来た。