2002-05-04 [長年日記]
λ. 夜型生活中。
λ. 数学得意?
あんまし数学得意じゃないというのは言い過ぎだったけど、少なくともそれほど得意なわけではないです。(ってか、もしそんなに数学得意だったら「総合政策学部」じゃなくて「理工学部」とかに進んでましたよー)
一応大学で一年間勉強したし、数学の先生とも割と話す機会があるので、表面的な知識はそれなりにあるけど、「数学が得意」というのはそういった表面的な知識の問題ではなくて、抽象的な対象に対する思考力/洞察力とでも言うべきものだと思う。僕はそういう点で僕はまだ非常に底が浅い(はず)。
なので、「12を2πで割るだけじゃん。なぜして、めんどくさい考え方をするのだろか」と即座に気づけるZOEさんのセンスは結構羨ましいのですよー
λ. bit別冊CLOS特集号
「一方artonさんにはbit別冊CLOS特集号を借りる。CLOS萌えるねー!」というのを見て、読んでみようかと思ったのだけど、[ruby-list:12525]によれば1989年1月のbit別冊のようだ。SFCのメディアセンタにはbit別冊は1990年以降のしか置いてないしなぁ……
λ. 巡回群とか指標群とか
n位の巡回群Gの指標群G^の指標群G^^がGとcanonicalな同型な事を理解するのに苦戦。指標群の元は準同型射(つまり関数)なので考えるのが面倒くさい。というか、こういう時こそλ記法で書いて欲しいのですよ。λ記法で書き直してようやく理解できた。
λ. The Y Combinator
を読んだ。lambdaが沢山で目が回りそう。
ただ気になったのは (procedure procedure)
という呼び出しがあること。単純型付きλ計算なんかだと、この手の呼び出しは不可能なはずなので、そういう場合はどうするのかな?
λ. 『ギルティ ギア ゼクス PLUS アンソロジーコミック 2』
を読んだ。
当初、ruby-partedという声も出たのですが、調べた限り、 journal FS関係が<br>ダメダメだったので捨てて、ruby-fdiskにしようって話になりました。<br>その辺りどうなんでしょうか?
Accept-Languageを見ても、コンテンツ(日記本文)が特定言語で書かれていたら意味がないです(笑)
最近全然追っ掛けていないのちょっと自信ないですけど、<br>partedはjfs,reiserfs,xfsは一応サポートしていたはずです。<br>特にreiserfsはlibreiserfsを使って一通りの機能が実装されていたと思います。<br><br>jfsとxfsについては、ファイルシステムの操作こそ実装されてなかったはずですが、<br>パーティションを編集するだけなら多分問題ないんじゃないかなぁ……<br><br>PS.<br>ruby-partedはparted-1.2時代のコードのままだったと思うので、<br>かなり変わってしまったparted-1.6に合わせるのは大変そう。<br>っていうか、誰かruby-parted引き取ってくれないかなぁ……
Parted 1.6.0-pre6 のリリース文を見ると、xfs,jfsもサポートしたみたい。<br>http://mail.gnu.org/pipermail/bug-parted/2002-April/002141.html
と思ったら、april fool だった... m(_ _)m<br>#スレッドを全部読んでなかった
酒井さんて大学2年だったの?大学院2年だと思ってました。<br>(^^;<br>例の地球周りの話だけど、あれはあれでいいと思う。<br>読者の漠然とした感覚を 0.00003% という明確な値で定量化し、<br>さらにその値をもう一度使って、つまり二重に「間違えて」正<br>しい答えを出してみせるなんて、かっこいいんじゃない?
これ、とっても面白いですね!!Ruby で書くと<br><br>diag = proc{|x| x[x]}<br>y_comb = proc{|x| diag[proc{|y| x[proc{|z| diag[y][z]}]}]}<br><br>fact = proc{|x| proc{|n| n.zero? ? 1 : n * x[n - 1]}}<br>puts y_comb[fact][5] #=> 120<br><br>かな。もうちょっと分かりやすくならないものか。
Y Combinator in Ruby<br>http://lambda.weblogs.com/discuss/msgReader$838<br>というのを見つけました。<br>これを参考にして、こんなのとかどうでしょう?<br><br>Y = lambda{|f|<br> lambda{|*args|<br> f[f, *args]<br> }<br>}<br><br>fact = lambda{|f, n|<br> n.zero? ? 1 : n * f[f, n-1]<br>}<br><br>puts Y[fact][5] #=> 120
これは、短くまとめると<br><br>Y1 = proc{|x| proc{|y| x[x, y]}}<br>fact1 = proc{|x, n| n.zero? ? 1 : n * x[x, n - 1]}<br>puts Y1[fact1][5]<br><br>ということで、fact1 を curry 化すると結局、<br><br>Y2 = diag<br>fact2 = proc{|x| proc{|n| n.zero? ? 1 : n * x[x][n - 1]}}<br>puts Y2[fact2][5]<br><br>です。そしてこの fact2 は元の<br><br>fact = proc{|x| proc{|n| n.zero? ? 1 : n * x[n - 1]}}<br><br>の x を x[x] に置き換えたものです。この置き換えを自<br>動化したのが、オリジナルのエライところなわけです。<br><br>ここで議論するかな。(^^; 面白い話題だから、ruby-list <br>に行きます?
ああ、なるほど。<br>どうも簡単になりすぎると思ったら、それを見落としていたのか。<br><br>> 面白い話題だから、ruby-list に行きます?<br><br>そうですね。カリー化の話と合わせて、<br>ruby-listに行きましょうか。