2002-05-13
λ. 履修申告確認表に「至急窓口に来てください」と書かれていたのをすっかり忘れていたので、だいぶ経ってしまってたけれど窓口へ行ってみる。
λ. システムプログラミング
演習問題とか真面目に解いていると、だんだん不毛な気分になってくる。でも、授業時間中に解けないと、解答例と自分の解答を比較考察する宿題に変化するので、一応解いて回避離脱。
λ. 論文読み会 "Rethinking /dev and devices in the UNIX kernel"
加藤さんの発表。jail(2)への愛が感じられる論文でした。なんでjailにこんなにもこだわるのかと思ったら、著者はjailの作者だったらしい。ありゃまぁ。
λ. ゆっけsong
某方面へ。ゆーすけべー日記 (2002-05-13) より
λ. T-coalgebra
あう。有限状態オートマトンがcoalgebraになるという話は情報数学Ⅰでちょっとやったけど、T-coalgebraなんて知らないにょ。多分T-algebraのdualだとは思うけど、T-algebraといえばmonadの出てくるアレなわけで……
というか、いきなりそんな授業やるなんて、ずいぶん飛ばしてるなー さすが大学院の授業(!?)
λ. yasuf's page
高校の同級生だった平川君のページ。
λ. Lawvere の不動点定理 (Lawvere's diagonal theorem)
[ruby-list:35060]で原さんが「Lawvere の不動点定理」という定理を紹介している。
どっかで見たなと思ったら、こないだまで読んでいた「Conceptual Mathematics」だった。この本の著者は F. William Lawvere と Stephen H. Schnuel だったりする。で、以下に引用。
- Diagonal Theorem:
- (In any category with products) If Y is an object such that there exists an object T with enough points to parameterize all the maps T→Y by means of some single map f:T×T→Y, then Y has the 'fixed point property': every endomap α:Y→Y of Y has at least one point y:1→Y for which αy=y.
λ. jmk = Make in Java
jmkという文字列を見て、一瞬saimuneさんのアレかと思ってビックリした。
λ. MFモデル
国際マクロ経済学の基本モデルに「マンデル・フレミング・モデル」というのがある。このモデルでは増税や公共事業削減等の緊縮財政は円安を導く。
λ. Cと末尾再帰の除去
VC++はtail recursionの除去をしてくれるとどこかで聞いた。gccにも-foptimize-sibling-callsというオプションがあるようだ。これらは一体どうやっているんだろう?
stdcallならば、スタックフレームの巻き戻しは呼ばれた関数側で行うことになっているので、末尾の関数を呼び出す前にスタックフレームを巻き戻してしまえば良さそうだといのは分かるのだ。だけど、cdeclのようにスタックフレームの巻き戻しが呼び出し側の役割の場合は、単純な末尾再帰はともかく相互再帰等を除去できないのではないだろうか?
2005-05-13
λ. WWW2005 4日目
には出ずに、千葉国から日本へ帰国。疲れたので速攻で寝る。
色々大変だったけれど、ボランティア・スタッフの仕事はいい経験になった。本当に参加してよかったと思う。
あと、ロッテの試合を見に行く機会がなかったのがちと残念といえば残念だ。
2006-05-13
λ. Haskellの複素数計算
404 Blog Not Found:%w(Complex Number).reverseで「Pythonやその他のLLに関しては、他の人によるdemoきぼんぬ」とあったので、Haskellでも試してみよう。Haskellではiやeは定義されていないのでまずそれらを定義しておく。
import Complex i :: RealFloat a => Complex a i = 0 :+ 1 e :: Floating a => a e = exp 1
で、ghciで試す。
Main> i 0.0 :+ 1.0 Main> pi 3.141592653589793 Main> e 2.718281828459045 Main> e**(i*pi) (-1.0) :+ 1.2246063538223773e-16 Main> exp (i*pi) (-1.0) :+ 1.2246063538223773e-16 Main> log (-1) NaN Main> log (-1) :: Complex Double 0.0 :+ (-3.141592653589793)
Haskellには暗黙の型変換は一切ないが、型クラスを用いて定数や演算を多重定義しているため、さほど不便さを感じることはない。それから、log(-1) の結果が他の言語での πi ではなく -πi になってる。これはまあどっちでも良いわけだけど、どうして違ってしまっているかは気になる。
それから、誰かML系の言語でのdemoをきぼんぬ。
……と書いたら速攻でOCaml版が! そして、SML版とGCaml版も。
- OCaml
- SML
- GCaml
Cの複素数計算
おまけ。
#include <complex.h> #include <math.h> #include <stdio.h> void cprint(const char* const expr, const double complex x) { printf("%-9s = %g+%gi\n", expr, creal(x), cimag(x)); } int main(int argc, char** argv) { cprint("pi", M_PI); cprint("e", M_E); cprint("e**(i*pi)", cpow(M_E, I*M_PI)); cprint("exp(i*pi)", cexp(I*M_PI)); cprint("log(-1)", clog(-1)); return 0; }
実行結果
pi = 3.14159+0i e = 2.71828+0i e**(i*pi) = -1+1.22461e-16i exp(i*pi) = -1+1.22461e-16i log(-1) = 0+3.14159i
λ. オイラーの式
Matz日記より。
そういや、私もオイラーの等式は「へ〜、そうなんだ。すごいね〜」くらいに思ったことはあるが、それ以上に感動した記憶はない。というか、今でも解析系の話はよく分からないし(汗。そんなわけで、すずきひろのぶさんが「オイラーの業績は、オイラーだけを見てもあんまり意味がなくって、歴史的文脈で読まないとわからない。だから公式を一個をとりあげてすごいとかいう奴は本当の天才か、あるいはインチキがどちらかですよ。」と言っているのを見て、なんだか安心した。
2007-05-13
λ. 初めての夜勤明け
初めての夜勤(20:30〜30:00の早夜勤)が終わった。予めたっぷり寝ていたこともあり、特に辛くも無い。しかし、あの服は蒸れるので、だいぶ汗をかいた。汗で指先がふやけたし、手に汗の臭いが染込んでるよ。昔、少しだけフェンシングをやっていた頃を思い出す。
それはそうと、汗を流そうと思ったのだが、土日祝日はプールも開いてない*1し、今日は朝風呂休みの日らしいので、シャワールームで軽くシャワーを浴びた。
その後、工場の第一食堂に朝食を食べに行ったら、土日祝は休みという表示が……工場の食堂は土日の夕方以外は開いてると思ってたのに……しょぼーん。仕方ないので、第二食堂へ行ってまたバイキング。
それから、寮に帰って洗濯にチャレンジ。家庭科の授業とか以外では初のような気がする。でもまあ、洗濯機に洗剤と一緒に突っ込むだけなわけで、簡単なものだな。
そうこうしてるうちに眠くなってきたので、今夜の夜勤に備えて寝る。
寝る前に「割れた腹筋を手に入れるトレーニングを教えてもらいました。」というのを見たので、試してみる。結構良さそう。 (追記: 私も5セット一気にやるのはだいぶ無理があるので、1セットごとに休みを入れてやってます)
関連
<URL:http://mixi.jp/view_diary.pl?id=432130476&owner_id=975988>
*1 平日でもこんな時間には開いてないが
λ. 並列論理和とfinite-join
sumiiの日記 - 並列論理和の続きの話。porは確かに連続関数にはなるなぁ。標準的な領域理論が実は並列言語のモデルというのは、考えてみれば当たり前だが、気付いていなかった。面白い。
ところで、このporはdirected-joinは保存するのだが、finite-join を保存しない。
- por((0,⊥)∨(⊥,0)) = por(0,0) = 0
- por(0,⊥)∨por(⊥,0) = ⊥∨⊥ = ⊥
関数に対して「non-emptyなfinite-joinを(もし存在すれば)保存する」という制約を加えてみると、逐次関数型言語に対応したりしないだろうか? とか思った。単なる思い付きで全然考察してないけど。
【追記】 全然的外れだった。 定義を変更して por(0,0)=⊥ にした場合のことを考えれば、finite-joinを保存するからといって並列性がなくなるわけではないことが分かる。
【追記】 そもそも、↑(1,⊥)と↑(⊥,1)が開集合なら、その和集合も開集合なわけで、順序構造と位相を考えてる限り、この問題は解決しないか。 やっぱ、時代はゲーム意味論(Game Semantics)なのか?
ψ sachi [期限きれの超過登録の訂正ってうけつけてもらえたの? あと、システムプログラミングは西尾先生のクラス?]
ψ さかい [> 期限きれの超過登録の訂正ってうけつけてもらえたの? 登録に問題があったのではなくて、 外国語を1単位も取得して..]
ψ ゆっけ [ゆっけsong聴いてくれんたんだ。ありがとう。どーYO!]
ψ sachi [そうだったのかぁ。。。 ところで私、自己紹介も何もしてませんが。 誰かわからないですよね?笑 すいません。 私は火..]
ψ さかい [sachiさんって、 http://www.sfc.keio.ac.jp/~sachi/ の人かな? 授業時間内に..]
ψ sachi [ちがいますよん。私は今B3です。 サカイくんのことは去年の数学と論理以来なかなか注目しております。日記もタメになり..]
ψ さかい [あ、これは失礼しました。 でも、これで思い出しましたよん。 > サカイくんのことは去年の数学と論理以来なかなか注目..]
ψ sachi [思い出された!? なんでだろう??? そういやメール送ったことありますよね(笑]