Archive for the ‘雑記’ Category

[宣伝]COMFRK vol. 1

土曜日, 8月 14th, 2010

今更ながら、宣伝。

名前: COMFRK
日時: 8/14(土) 二日目
場所: 東ア47a
内容: 雑誌1部 COMFRK vol. 1

1. 夏休み子供λ相談室 by ranha
2. Haskellコミュニティ探訪 – 処理系とライブラリを中心にして – by shelarcy
3. 差分のアルゴリズム by cubicdaiya
4. メインメモリアクセスマニュアル by nish
5. C++0xの空、Variadic Templatesの夏 by lyrical logical
6. PrologでSchemeの操作的意味論を実装 by zick
7. ゲームオーバーのすゝめ by mascalade
8. ???

(埒を明ける日々)

という訳で
「PrologでSchemeの操作的意味論を実装」
という記事を書かせていただきました。
本来ははてなようせいとまなぶ Schemeの形式的意味論に載せるつもりだった、
Prologのソースコードの解説です。
大体こんな感じの内容です。

式Mのxをyに置き換える

土曜日, 7月 17th, 2010

λ計算だとか、数学よりの話をするときはよく、

式Mのxをyに置き換えたものを
M[x:=y]
で表す.

なんて定義が出てきます。
本によっては、まったく同じことを表すのに、
[y/x]M
だとか、
M[y/x]
といった記法も使います。

本日、このM, x, yの順番に、意味がある(かもしれない)ことに唐突に気づきました。

Mxyに置き換える
M[x:=y]

M[x:=y]は日本語表記と完全に一致するじゃないですか、
なんか読み易いと思ったらそういうことか。

それから、[y/x]Mは英語だと意味をなします。

Substitute y for all x in M.
[y/x]M

完全に一致。

しかし、そうなるとM[y/x]が浮いてしまうんですが、
これには何か意味があるんでしょうか。
謎です。

今年1年を振り返る

木曜日, 12月 31st, 2009

適当に今年の出来事を10個集めてみました。

ポケステでLispが動いた
去年の年末から今年の年始にかけてポケステ向けのLispインタプリタを作りました。

フルマラソン走った
翌日の筋肉痛が凄かったです。タイムが遅かったのが残念。

Mac Book買った
非常に使いやすいです。いい買い物をした。

自転車で琵琶湖一周
大体時速20kmをキープし続けることができました。次走るときはもう少し良い自転車で走りたい。

マンガで分かるLispがたくさん
最近停滞気味ですが、最後まで続けたいと思います。

BiwaSchemeでゲーム作った
Schemeでブラウザ向けのゲームが作れるというのは面白いですね。

院試受かった
院試が近い時期に彦根まで自転車でひこねのよいにゃんこのグッツを買いにいったりしましたが、
試験日やその前日にカツ丼やチキンカツ定食を食べたおかげか無事合格できました。

CLでJavaのアセンブラ/逆アセンブラを作った
CLでプログラムを書くのも大分慣れてきたおかげか、比較的楽に書くことができました。

cl-openglで遊んだ
こいうプログラムを書くのは楽しいですね。

今年1年振り返ってみたけど、ろくなことをやってない
特に書くことがなかったので再帰的なリンクを張っておきます。

院試

金曜日, 8月 14th, 2009
            _ – –‐- 、
         r‐ ´ト、  ヽ   ‘ ,
         ヽ! /コュ      l
           |  ) l!`!/ ̄ ̄` ‐-ァ        ぜんぶ、した
           | く,. /       、>
           .!l iト、.!     /} ノトノ     過去問も、やりとげた
           i! l!./  ./  } ‐’ _ノ’,
            .l l //  !|ニ!  l、        もうじゅうぶんなぐらい…
             V从乂人ノ /ヽ  lヽ
             l      /   ‘,  l ‘ ,       この夏に一生ぶんの勉強がつまってた
             |     ヾ   l  :!: ヘ
             |, ‘     `-r、 ! :l:  ‘,    いろいろなことあったけど…
            /      ソ lニ>、l  !  l
            ./       /-‐、 | :!   !     わたし…がんばって、よかった
           /        ! _ -‘:::! !  :|!
        ./          |    ! } :|! l    つらかったり、苦しかったりしたけど…
        /           |    ヾシ/レ’
       (”T ‐r ァ-‐ ‐-、   :!    !レ’  でも…がんばって、よかった
         ソ  i !     フー、!    l
      /   !i     /ーr´    :l         ゴールは…幸せといっしょだったから
     /    l     / / |    !
     /     l     / / .!    l

という訳で院試受かった。

OSC2009 Kansai行ってきた

土曜日, 7月 11th, 2009

京都コンピュータ学院 京都駅前校で開催された
オープンソースカンファレンス2009 Kansaiに行ってきた。
BlueQuartzの中の人にBlueQuartzが好きな後輩を紹介することができてよかった。

自転車で琵琶湖 -2周目-

月曜日, 4月 20th, 2009

去年に引き続き、今年も自転車で琵琶湖を走ってきました。
自転車は去年と同じくサイクロンゆのはな一号機です。
[コース紹介]
去年は時計回りだったので、今年は反時計回りに挑戦。
また、京都から琵琶湖までの道も、367号線で山を登っていくルートに変更
[Google Map]。
[午前3:30]
山に向かって自転車をこぎ始めました。
このときの気温は9度。結構肌寒いです。

しかし、山を登っていくにつれて気温は低下。
8度、7度、そして6度まで下がりました。寒いです。
おまけに暗いです。山道としてはかなり街灯が多いところですが、
街灯がない区間が続くと自転車のライトだけが頼りでした。
[午前4:30]
なかなか滋賀県にたどり着きません。
前に一度同じルートで県境まで行ったことがあるんですが、
もう2年も前なのでどれくらいの距離だったのか思い出せません。
実は滋賀県なんて存在しないんじゃないのか。
前に行ったときは狐耳の美少女にでもばかされたんじゃないのか。
坂の傾斜がきつくなってきて、そんな変なことを考え始めた頃、
ようやく県境に到着しました。

あたりは本当に真っ暗で何も写らなかったので、以前来たときの写真をのせときます。
県境のあとは有料トンネル(途中トンネル)があるのですが、
これは脇の細い道を通ればさけられます。知っててよかった。
などと思ったんですが、帰りに「24:00-6:00は無料」の文字を見つけました。
せっかくだから通ればよかったorz

そこから琵琶湖大橋まではずっと下りです。
[午前5:00]
琵琶湖大橋到着。
用もないのにちょっとだけ橋を渡ってみました。

琵琶湖大橋と言えばさびれた観覧車です。
暗い時間でもよく目立っています。

琵琶湖大橋を後にして、南に向かって出発。
いよいよ琵琶湖一周の始まりです。
[午前6:10]
琵琶湖の南の端、唐橋に到着しました。

なかなか順調なペースですが、早くも足に疲労が出始めました。
[午前6:30]
琵琶湖の東側は非常に通りやすい自転車道があります。
この道は親切なことに1km間隔ごとに標識が置いてあり、
場所によっては100m間隔で距離を教えてくれる区間もあります。

大体時速20kmちょっとを維持しながら走りました。
このあたりでお腹が減ってきたので朝食。
持参してきた「イカナゴの釘煮がちょっとはみ出しているおにぎり」を食べました。

[午前7:20]
琵琶湖大橋の東側に到着。

分かりにくいですが、写真の中央あたりに観覧車が薄らと写っています。
[午前9:30]
確か彦根のあたり。ひこにゃんには会えませんでしたが、桜がきれいに咲いていました。

京都では桜はすっかり散ってしまったというのに、滋賀ではまだ桜を見ることができるようです。
「滋賀ではアニメの放送が数週間遅れるのが標準」
というのを滋賀県民に聞いたことがあるので、きっと同じようなことでしょう。
それはともかく、太ももの疲労がかなり蓄積されてきました。
[午前11:15]
琵琶湖の北の果て。山道。

湖北と言えば去年は奥琵琶湖パークウェイに行って酷い目に遭いましたが、
今年はその道は避けることにしました。
べっ、別に延々と続く坂道が怖い訳じゃないんだからね!!!
奥琵琶湖パークウェイが一方通行だから避けるだけなんだからね!!!
(ちなみに「一方通行は「自転車を除く」とあるため行こうと思えば行けるらしいです。
ただし、車とバイクが猛スピードで正面からやってくるので、あまりにも恐ろしいです。)

奥琵琶湖パークウェイを避けた湖北は想像以上に楽でした。
山道も気合いを入れて上ろうと思ったものの、すぐにのぼりが終わってしまい、かなり拍子抜けした感じです。
[午後1:00]
桜咲き過ぎ。花見をしているひとも大勢いました。
私もそれにまぎれて昼食。「いかなご(略)」第二弾を食べました。
このあたりで、足の疲労がかなり大変なことになり、
ふとももから始まった痛みは膝の方まで下りてきて、かなり辛い状況に。
[午後1:30]
足の疲労からかなりペースダウン。
「このまま行くと、ゴールまで結構時間がかかるな…」
そんなことを考えながら前を走っていたマウンテンバイクにのった少年を抜くと、
その少年が突然ペースアップしてこっちを追い抜いてきました。
こちらも負けじとペースを上げ、再び追い抜き。
そんなことを繰り返しているといつの間にか元のペース(時速20kmちょっと)に。
せっかく元のペースに戻せたので、これを維持することに。
こちらがそれ以上ペースをあげようとしないのを見て少年は、
明らかに残念な顔をしながら去っていきました。
ごめんよ…
[午後3:20]
遠くに薄らと観覧車の姿。
足の痛みを堪えつつ更にペースアップ。
そして、ついにスタート地点である琵琶湖大橋に。

距離およそ200kmの琵琶湖一周の旅はおよそ10時間20分で終了しました。
休憩時間を考慮に入れると時速20kmちょうどで走り切ったことになります。
ママチャリとしてはかなりがんばった方かと思います。

[帰るまでが遠足です]
午後1:30から2時間に渡って結構無茶をしてペースをあげたため、
太ももと膝がヤバいことに。おまけにふくらはぎにまで疲労が。
この状態で山を上って京都にかえらなければ行けません。
幸いなことに、登りは7km程度しかなく、あとはずっと下りのようなので、
泣きながらトロトロと山道を上りました。
約1時間の戦いの末、なんとか坂を上り切り京都に。
あとはすべて下りだったんですが、足がまともに動かず、
下り切るのにまたもや1時間かかってしまいました。
朝、登った時と同じ所要時間とはかなり驚きです(主に悪い意味で)。
帰りの体力もちゃんと考慮に入れないと悲しいことになりますね。

ちょっとフルマラソン走ってくる

日曜日, 3月 1st, 2009
                   _____
         r⌒ヽ、   .  / \ /\
        / \  \. / ( ●) ( ●)
       _/ / ヽ   /     (__人__) \ 
      〈__/  . |  |       ` ⌒´   | ちょっとフルマラソン走ってくる
           /  .\     i⌒\   / 
          ./   / ⌒ヽ, _.ヽ  .\/
      .__   r  /     |/ー、\   \
     .”ヽ |  i,        ノ   .\^   i
       .| ヽ./ ヽ、_../   /     .  ヽ、__ノ
       .i /  //  ./
       .ヽ、_./ ./  /
           ./ /
         .ノ.^/
         |_/

米国版リリカルLisp!?

日曜日, 1月 25th, 2009

何も言わずにここを見て欲しい。
面倒ならこの画像だけでも見て欲しい。

           , -――- 、 _ _/ヽ
         /: : : : : : : : : : : : : : : : !-.-.‐.‐.‐. ァ
    __∧’: /   . . . : : : : : /: :/: : : :`: :<
.  /:::::::::::::::::〉: : : : : : :./: : : :,:イ: :∧: :i: : . .\:`ヽ   ○
  〈::::/:::::::::::/: : : : : : :/ : : : / /: /  ‘,: |: : ハ: : ヽ  \
  ∨:::::::::::::/: /: : : : :/: :-∠_/_:/   |: |: : :∧: : :ヘ、  ’,         ○
  〈:::::::::::::/: /: : : : :/: :.X   //   \!∧: : : :’,: : : ハ\j
  /\:::::/: /|: : : : /i/  \      /`ー∨: : :l: : : :.!        o
  ,’.:: : :ヾ:./´ !: : : /  ̄ ̄ ̄       ___∨: :i:. : : :!
. i.: : : ./イ!  |: : /      __    \    /!: ;イ::. : :.i〉    変 態 だ ――――!!!!
. !: : : : .::|:.ヽ_j: /     /:::::`:.、   \ /、|:/:.|:::. : ,’
 j: : : : : .:!:.:/ |/ \    /::::::::::::::::::〉     ! }’:.:.:|∨:/     o
 |: : : : : .:|:/    > 、j::::::::::::::::::/   , イ-<:.:.;イ:.Ⅳ  |: : : : : .:|'   /   |` ーrー-イ--‐ '  |:.:.:.∨:.!: |  |: : : : : : !   〉     |  /ヽ  ヽ  o j:.:.:.:.:. : !: |          O  |: : : : : : |  /`ー 、  |    ,!  }、   |:.:.:.:. : :.|: !    ○  |: : : : : : | ./    ヽ |\/,|  / ハ   |:.:.:. : : :.|/  |: : : : : : |/      `|\///   |  .|::. : : : : |

どうでもいい話5連発

月曜日, 11月 17th, 2008

ほんとうにしょうもない話ばかりなので小さい文字でいくよー。

*エディタの話*
大学に入ってからviとEmacsの存在を知りました。
周りをみると、Emacs派閥の方が多かったので、
ひねくれものの私はviを使うことに決めました。
その時はCしか書くことがなかったので、問題なかったんですが、
LispやPrologの様な言語を使っていると、どうしても対話環境が欲しくなり、
泣く泣くEmacsを使うことになってしまいました。
両方のエディタを使うようになって改めて思ったんですが、
viって変なエディタですよね。
タイプミスをしてその場で気づいて一文字消そうと思ったら、
ESCキーを押してxキーを押す。そして再び挿入モードに移るためにaキー。
なんと、普通のエディタではBackspace一回で済むことをするために、
3つのキーを押さなければいけないんです(*1)
viを使い始めたときはこれに泣かされました。

(*1) 一文字の入力ミスなら気にせずタイプを続け、後でrを使って一文字修正をする方が速かったりします。
あと、vimだとBackspaceが使えるので、これに頼るというのもありかもしれません。

それから、カーソルを移動させて挿入という動作を繰り返す際にも、
Escとi(またはa)キーを毎回押す必要があるため、
どうしてもタイプ数が増えてしまいます。
しかし、viを使ってしばらくしてくるとこういったことが気にならなくなってきました。
viの色んな機能を覚えてきたというのもあります。
でもそれ以上に、
タイプミスが減った
プログラムを上から一気に書くようになり、カーソル移動が減った
私の中でこんな変化が起こった(ような気がした)んです。
結果としてプログラムを書く速度が上がったと思います。
ひょっとしたらviはプログラマ養成ギブスの役割を果たすのかもしれません。
でもまあ、Lispのように対話をしながらプログラムを書いていく場合は、
いやでもカーソル移動が増えてしまうので素直にEmacsを使うのがいいかもしれません。
ちなみに、Emacsを使うようになってからは
小指が強くなった
これに尽きます。Emacsは小指強化ギブスです間違いありません。
CtrlとCapsLockを入れ替えたところで小指は結局酷使されるんです。
今でも時々左手の小指が痛くなることがあります。
正直どうにかしてほしいです。

あ、ちなみにこの文章はEmacsで書きました。
viで日本語打つのはめんどくさいです。

*大学の課題のプログラムの話*
大学の課題でLL(1)構文解析器を書きました。
LALR構文解析器(の生成系)、演算子順位構文解析器は既に書いたことがあったので、
これで代表的な構文解析の手法3つ全てを制覇したことに成りました。
やったね。
それにしても、LL構文解析の簡単さに思わず笑いそうになってしまいました。
効率よく作ろうとすると何か工夫がありそれなりに大変…と思うのですが、
素直に作るとBNFにあわせた関数呼び出すだけなのであまりにも簡単です。
でも新たに言語を作る場合は、それをLL(1)文法にするのが面倒な気がするんですよね。
大学の課題でパースする対象の言語はPascalライクな独自の言語で、
名前を検索しても出てこないことを考えると先生が作った言語のようです。
先生が「学生でも簡単にパース出来る用にしないとな…」とか思いながら、
LL(1)文法の言語を作っている姿を想像するとなんだか微笑ましく思えてきました。
*手の抜き方*
これまた大学の課題の話。
「前の課題のプログラムどんな風に作った?」
『面倒だったから最低限作れって言われた関数しか作らなかったよ』
「そっちの方が面倒じゃない?」
『だって、関数の入出力一覧をレポートに書けってあったやろ。
最初はdoxygenを使おうかとも思ったんだけど、それも面倒やったから、
作る関数の数を抑えて手を抜くことにした』
…大学の課題の手の抜き方は奥が深いと思いました。
*自転車の話*
昨日、自転車のチェーンが切れました。
半年ほど前にもチェーンが切れたことがあるし、
普通に自転車をこいでる最中に後輪が大破(ギアと連動しなくなった)して、
後輪を丸々取り替えたこともあるし、とにかくよく壊れている気がします。
毎日1時間以上乗っていた高校時代と比べたら全然酷使していないというのに、
なんでこんなにも壊れるのやら…買い換えようかとも考えたんですが、
一緒に琵琶湖一周をした愛機であることを考えるとそれも躊躇われてしまいます。
それにしても、自転車屋って料金が安いところほどサービスが良くて、
料金が高いところに限ってサービスが悪いのは気のせいなんでしょうか…
*そら*
カラスを飼っている家を見つけました。
一瞬、観鈴ちんの家かと思ったけど、
ここは和歌山じゃなくて京都でした。残念。
いつしかのリリカルの続き

もっとevalされるべき

日曜日, 11月 9th, 2008

もっとevalされるべきとは、「もっと評価されるべき」のLISP方言である。
eval関数は、プログラムを評価する関数で、詳細については、Wikipediaのevalの記事を参照。
(もっとevalされるべきとは (モットイーバルサレルベキとは) – ニコニコ大百科)

ねーよwwwww