プログラミングキャンプ日記

昨日「クヌースの超現実数」って書いたやつはコンウェイが考えてクヌースが小説にしたものらしい: Surreal number
っていうかそういうこと調べてないでご飯を食べに行かないと。


62人の参加者を囲んで共通講義とかやっていたので講師はまわりの席で小さくなっていたのだけど、LANを這わせていなかった&電波入らないので悲しかった。いまようやくオンラインになった。@25:07


  • Rubyはオブジェクトが主でメソッドが従、Pythonはメソッドがオブジェクトに従属するものではなく「呼び出し可能なオブジェクト」
  • Ruby: x.a_method(arg1, arg2)はx.send(:a_method, arg1, arg2)
    • :a_methodは"a_method"でもOK
    • メソッド呼び出しはオブジェクトに対するメッセージ送信という考え方
  • Python: x.a_method(arg1, arg2)はgetattr(x, "a_method")(arg1, arg2)
    • メソッド呼び出しはオブジェクトの属性である関数的オブジェクトの呼び出しという考え方
    • ちなみに関数的オブジェクトの呼び出しfunc(arg)はfunc.__call__(arg) ニワトリが先か卵が先か!ウロボロスか!
  • 信頼できる(住所がバレても構わない)誰かと住所推測合戦とかするとかどうだろう
  • 質問はとても重要。明文化されていない答えを明文化させる機能がある。
  • 超現実数
    • SurrealNumber := pair, set >
    • 0 := {|} // make_pair(set(), set())
    • 1 := {0|}
    • -1 := {|0}
    • 2 := {1|}
    • -2 := {|-1}
    • 1/2 := {1|0}
    • 参加者の使用するマシンで音を出そうとする→/dev/dspないし!/lib/modules/...にalsaが入ってないし!というわけでalsa-driverのソースを落とした
    • 紆余曲折は中略。結論から言うとaptitude installでalsa-base, alsa-utils, alsa-tools, alsa-source, alsa-ossを入れた
    • alsaconfしてecho "zazazazaza" > /dev/dspしたら音が出た。めでたし。
    • 何かをインストールするときに「portだのaptitudeだので簡単に入るんじゃないか?」と思う前にソースを落として./configureをしてしまうのは悪い癖だな。