言語ゲーム

とあるエンジニアが嘘ばかり書く日記

Twitter: @propella

自動書記: サンタモニカ図書館

今日はいつものベーグル屋に行こうと思ったら駐車場が一杯で、仕方なくその辺に路中してどこかベーグルが食べられる所を他に探していたら、サンタモニカ図書館の喫茶店があったので入った。 期待してなかったが、Panera Bread と違ってちゃんとチーズを塗ってから焼いてくれるので美味しかった。しばらくして昼飯を食べるためにフードコートへ行った。サンタモニカ近辺はうちの近所よりさらにホームレスが多い。なんでこんなに多いのだろう。その原因の一つが分かった。

中華料理を食べていると、誰かが食べ終わったテーブルにいかにも汚いおじいさんがやってきて、食べ残しを食べ始めた。びっくりしたが、店の人も気にする様子も無く、誰もが淡々としていた。おじいさんは帰り際には隣の席の赤ん坊と遊んで、普通に去って行った。何と言うか、ホームレスがサンタモニカの生態系に組み込まれている感じ。

関係なさそうな話だが、我々の乗る飛行機のコストは、殆どビジネスとファーストの客で賄っていて、エコノミーはオマケらしい。本当か嘘か知らないけど。きっとあのおじいさんはエコノミーなのだ、これでいいのだ。

それから海まで歩いて図書館に帰る時に、突然カラオケ屋から裸の男女が沢山出てきて(水着着用)、声を張り上げてジングルベルを歌いながら歩行者天国まで走って行った。周りの人はゲラゲラ笑いながら一緒にジングルベルを歌っていた。

話は前後するが、今朝は寝汗をかいて目覚めてしまった。よっぽど疲れていたのか。昨日アレックスがペアプロをするぞ!と言い出して、一日ずっと一緒に居た。彼の頭脳は私の三杯くらい速く回るので、滅茶苦茶疲れた。でもタイルスクリプトの最も億劫そうな所が一日で終わってしまってびっくりだ。しかも今日もシコシコ書き続けているらしい。

しかし、俺も人の事言えないが、彼のむらっ気も酷すぎる。スクイーク版を作っていた時に、AST を返すパーサーが欲しいと散々言ったのに作ってくれなくて、これが普通の javascript 版になった途端瞬間で作ってきた。彼のような天才は、仕事したくなるようなポイントを当てるか当てないかで能率が桁違いに違うのだろう。これは教訓になった。でも、本当は自分で納得の行くまでのんびりじっくりやろうと思ってたプロジェクトが乗っ取られた形になってしまって複雑な気分。もうちょっと秘密にしておけば良かった。

目が疲れてあまりパソコンの前に居られない。そこで今日はずっと SICP の 4.4 章 Logic Programming を読んでいた。prolog みたいな物を scheme で作ろうというのがテーマだ。面白いけど、やっぱユニフィケーションが無茶苦茶難しい。ずっと prolog 分からないと思ってたんだけど、この分からない原因がユニフィケーションにある事が分かった。あと、アランさんが control structure と言う時は、prolog の検索を含めた意味だと分かった。これは知らないとかなり特殊な用法では無いか。普通 if then とか while の意味だと思うでしょう。

なんで prolog を復習しているかと言うと、etoys の型チェックは prolog を使えば良いのでは無いかと思ったから。前にも書いたけど、タイルスクリプトの言語構造はテキストプログラムとは違って、前からパースじゃ無く、書き換えルールで生成的に定義される。で、どこかで prolog生成文法の処理に適しているというのを斜め読みして、これは行けるかもと思った。例えば forwardBy の型を、forwardBy(P, X) :- isPlayer(P), isNumber(X) のように定義してはどうかと。まだ考え中。