レポートが終わりそうになる→

絞る→1日時間いっぱい使う。


5/7(金)
生協で地球環境科学の教科書のついでについにドラゴンブックをぱなしました。8800円したけれども生協の本は1割引きになるのでgood。ゲームコーディングコンプリートとかやけに安いし一緒にぱなそうかと思ったがさすがに厚みと重量がやばいので回避。というかドラゴンブックだけでノートPCまで回避したがるこの体にはきつい。しかし何度読んでもマイクマイク書いてあるなあの本。ドラゴンの方だけど、最初の方を読んだところ第2版らしくRubyの名前も出てた。でもRubbyって書かれてた。この表記揺れってどうなってるの?googleにも無視されてわかんない。


5/8(土)
隔週の計算モデル論。ksk氏の愉快な仲間たちと2・3限を折半するという本当に頭の良い何とも言えない戦略。なんだかんだいってβ変換しただけのような気がします(ついでにα変換も)。まだ来てなかったksk氏の分や午後の人たちのために3部取ったら資料の数がかなり怪しくなってました。2人がまるまる入れかわったら仕方ないね。

0: λ.xy y
1: λ.xy (x y)
2: λ.xy (x (x y))
3: λ.xy (x (x (x y)))
4: λ.xy (x (x (x (x y))))
...

※手続き型しか分からない人向けの噛み砕いた訳
0は引数x,yをとってyを返す関数
1は引数x,yをとって関数xに引数としてyを渡して返ってきたものを返す関数
2は引数x,yをとって関数xに引数として、関数xに引数としてyを渡して返ってきたものを渡して返ってきたものを返す関数
...

チャーチ数*1wikipediaとちょっと書き方が違うね。別にどうでもいいけど。宿題はサクセッサ関数(後者関数)*2を書くこと(らしい。仲間たちに任せてる)。succ(0)=1, succ(1)=2, ...となる関数を考えろってことですねー。
まず引数にチャーチ数をとることを考えてλn.と書きましょう。この仮引数nを使って1つ先のチャーチ数を返すようにします。まあヒントに甘えてもいいけどx→x、y→(x y)と置換した形になっているのを考えて、nに何かを適用する(nに引数を与えて関数呼び出しする感じ)ことを考えます((n args...)という感じ)。

λn. (n a (a b))

x,yだと混乱するので適当にa (a b)で。これだと例えばnに1を渡すと(a (a b))になるので先頭にλab.が足りないっぽいので

λn. (λab. (n a (a b)))

これで例えばn=1のとき結果がλab. (a (a b))になる。α変換(仮引数は名前を変えられるよね規則)で

λn. (λxy. (n x (x y)))

これが最終形。別にこれでなくてもいいけど。チャーチ数のx, yも引数に一意な識別子を振ってるだけでこの記号でないといけないってわけじゃないしね。まあただ考える途中では仮引数(受け取る変数名っぽいもの)と実引数(渡すもの)の名前を変えないと結構混乱する。まあSICPで経験済みなら力押しでなんとかなるけd
言っておくけど、私はこっちはあくまでサブとしてるので(最近は実用言語にもこちら側の考え方が必要視されてる感もあるし、されてきたようだし)。わざと興味を持った全く関係のない人にももしかしたら分かるかもしれない書き方をしています。読者層が無駄に予想以上に広いことを考えてもしかしたら興味持つ人いちゃったりして…というのがここのブログの方針っぽくなってます。あと読みなおしとか基本してません。多分脈絡がおかしいし、気付くと恥ずかしいし(そのまま公開するのもどうかと思うが)、直すのめんどいし。


5/9(日)
自宅でオーラガード*3。リバサ*4PCからEclipseJavaをいじくるのは最も自然に行える行動なのでプロ2*5の課題をやる(6:00〜7:00)。ちなみに現在もサイトが更新されてないし提出システムにも追加されておらず提出できない。続いて明日提出な以上どうしようもない実験レポート。実験が体の6か所に加速度センサをつけて2分間ずつ歩いたり走ったり階段を上ったり下りたりし続ける良ゲーだったので、パターン認識の結果のテキストファイルを貼りつけるくらいで楽な方。ただし、結局それに合わせてしまうのでこんな時間(19:30)だよ!!あと分かりきった考察書くだけなのに…。


そういやもう5月だな、VisualStudio2010どうなったんだろ→

 マイクロソフト株式会社(本社:東京都渋谷区)は、最新の統合開発環境である 「Microsoft(R)Visual Studio(R)2010 日本語版」の提供を、4月20日(火)より順次開始することを発表します。

 マイクロソフトは、本日、「Visual Studio 2010 英語版」の開発を完了し、MSDN(R)Subscription 会員向けに「Visual Studio 2010 英語版」の提供を開始しました。「Visual Studio 2010 日本語版」につきましては、MSDN Subscription 会員向けには4月20日(火)に、企業向けのボリュームライセンスを5月1日 (土) に、パッケージ製品を6月18日 (金)にそれぞれ提供開始します。また、無償版である、「Visual Studio 2010 Express 日本語版」は、4月27日(火)より弊社Webサイトでのダウンロード提供を開始します。

6/18とか遅すぎわろた。これは誕生日プレゼントレベル。

*1:自然数を関数で表現するという何とも狂ったアイデアSICPSchemeではデータ(主に数値)と関数が同列に扱えるんだよと諭しておき、それでも本質的には別物に見えているところを、実はそのデータも関数で表すことができるんだよと強烈な洗脳をかけてくる。非常に危険な宗教といえるでしょう。

*2:succeedには「成功する」の他に「次に続く」という意味がある。名詞形が違う。さくしーどとかさくせっさーとかさくせっしょんとかは「1つ後」という意味で覚えておくといろいろ良い。

*3:短絡的に言えば引きこもること。

*4:北斗用語で起き上がりにすぐ行動すること。リバーサル。

*5:プログラミング第2。Java