2008年1月
■ 最近のわたし
Javaを勉強しようと思ってちょっと触っている。
ゲーデル数のエンコーディング、デコーディングをして遊ぼうと思った。
3秒でわかるゲーデル数の仕組み。
- 自然数って素因数分解できんじゃん
- 12 = 2^2 * 3^1
- 15 = 2^0 * 3^1 * 5^1
- これを[2,1]とか[0,1,1]というリストだと思いなさい。
- (指数がリストのなかの数になると思いなさい)。
- こうすれば、自然数を「自然数のリスト」と見ることができるよ。
- 次に「自然数のリスト」を「文字列」として解釈するよ。
- 1 => "0", 3=>"f", 5=>"¬"...
- などという形でそれぞれの数に文字をわりあてるよ。
- たとえば
24 = 2^3 * 3^1 =>[3,1] ==>"f0"
- こうすれば任意の論理式に自然数が一対一で対応ですよ?
- つまり、「これは適切な論理式か?」「これは適切な証明か?」という論理学上の問題が、「自然数から自然数への関数をつくる」問題になるよ。
デコード (自然数->論理式) は簡単だが、エンコード (論理式->自然数) は論理式のパースをしなきゃならないのでちょっと面倒なんだ。
それでちょっとパーサーの書き方を調べたりしていた。
途中で脱線して「JavaScriptでタブローを描くプログラム書いたら楽しいんじゃないか?」と思い、手をつけた。
どっちもまだ完成してない。暇なはずなんだが、用事があったりバイトがあったりで意外と細切れの時間しかない。
■ ふつうの日記
今週末のわたし。
- 土曜日: youkosekiさんらの結婚式に二次会から参加。余興のプレゼントコーナーでわたしはてもみん無料チケットをいただいたのだが、わたしが物欲しそうにしているのを見たせいか、iPodNanoをもらったbonsensがなんとプレゼントを交換してくれた。いつも金銭的に困っているイメージのbonsensが気前よくほどこしをしたのですごいことだと思った。交換条件として恐るべき犯罪の片棒をかつぐことになったが、大したことではない。今後bonsensが困っているときは、ポンと有金を出そうと思った。
- 大変感謝したので、ここで前からbonsensに対して悪いと思っていたことを謝りたいと思う。以前Comitiaに行ったとき、以下のような応答があった。
- 「bonsensは何か買うものないの? 今ついでに寄っていっていったら?」
- 「あるけど、ぼーいずらぶだからいい」
- 「全然恥しがることないよ。買いに行こうよ!」
- 「いい」
- 後から考えると、これは恥しがるのが当然のような気がしたので「悪いことをしたなあ」と思った。あのときのことはわたしが悪かった。申し訳ない。
- 結婚式二次会の後、三次会に行った。終電を逃して霞が関から下北沢までタクシーに乗った。高額の出費だった。
- 日曜日: shimとM山のNPOの手伝いにかりだされ、センター試験の解答をつくる予定だったが寝坊した。わけもわからず六本木の某所につれていかれたが、ふと見るとそこは噂に聞く (というほどでもない) GLOCOMだった。
- 英語の訳をつくるかたわら、ウキウキとiPodを初使用。とりあえずPCに入っていたIOSYSの『東方河想狗蒼池』を入れた。このアルバムは素晴しいアルバムだ。
- にいのうが東京に来ているという噂だったので、夜からM川およびにいのうと合流した。
- しかしにいのうは共同研究者との打ち合わせに行ったので、M川と池袋でだらだらしていた。せっかくiPodを手に入れたので音楽生活を充実させようと思い、とらのあなで高槻やよいさんのCDとMOSAIC.WAVさんの新譜を購入した。
- あとは主に厨二病と邪気眼の話をしていた。M川は年末のイカ天特集番組を観て、厨二病は意外と広く共感を呼ぶかもしれないと思ったらしい。どのバンドを見てそう思ったのか問いただしたところ、「不思議ちゃん」などのキーワードから「マサ子さん」であることがわかった。わたしはマサ子さんを敬愛してやまない人間のひとりだが、「マサ子さんに共感する人も少ないと思う」と答えた。
- 呪文詠唱についてなど。M川が中学時代にドラグスレイブを詠唱していた件。恥しい呪文詠唱と恥しくない呪文詠唱の違い。戦争経験者の呪文詠唱は恥しくない。「われはもとめうったえたり」は恥しくない。
- トールキンは設定厨ではない。あそこまで行けば設定神。しかしラブクラフトとトールキンと聖書は厨の心をくすぐる厨文学として今後も君臨しつづけるであろう。
- 東浩紀は文体などにこだわらないと言うが、その東浩紀でも那須きのこはアウトだと思ったらしい。「活字はラノベしか読めない」と公言するタカタくんも那須きのこは「ちょっとサムいね」と言っていたらしい。すごそうなので興味をひかれた。
- にいのうと合流し、だらだらしていたら夜遅くなった。前日に終電を逃したせいもあり、無理して帰るのはやめ、にいのうのついでのM川家に泊めてもらうことにした。M川氏おすすめの安部子という人の動画 (腐女子踊ってみた系動画) を見せてもらった。
- 月曜日: 起きてバイトに行った。移動中および仕事中にやよいのアルバムを聴く。「これはすごい」と思った。
- わたしが音楽に求めるものは
- 稚拙さ
- ロリ声
- 電子音
- の3つである。
- ふたりのもじぴったんは前から好きだったがキラメキラリ*とごまえーも素晴しいと思った。
■ 作業メモ
twitterのHTML
■ul#accessibility *
■div#containter.subpage
├□span#loader *
├□h1#header
|└●img
├□div#flash *
├□div#side /* サイドバー */
|├●div.section
|├●div.section
|├●div.section
|├●div.section
|└●div.section
├□hr
├□div#content /* メインコンテンツ */
|└●div.wrapper
|・├○form#doingForm
|・|├▼div
|・|└▼fieldset
|・|・├▽div.bar
|・|・├▽div.info
|・|・└▽center
|・|・・└input.update-button
|・├○ul.tabMenu
|・|├▼li
|・|├▼li
|・|└▼li.active
|・└○div.tab /* この中がエントリーの一覧になる */
|・・├▼table#timeline.doing
|・・└▼div.bottom_nav
├□div#footer
├□hr
├□div#navigation
└□hr
div.tabの中身だけ取り出したもの
■div.tab
├□table#timeline.doing
|└●tbody
|・├○tr#status000000000.hentry
|・|├▼td.thumb vcard author
|・||└▽a.url
|・||・└▲img#profile-image.photo fn /* プロフィール画像 */
|・|└▼td.content
│・│・├▲strong
│・│・│└△a
│・│・├▲span.entry-title entry-content /* ここに本文 */
│・│・└▲span.meta entry-meta
│・│・・├△a.entry-date
│・│・・├△#text
│・│・・└△span#status_actions_000000000
|・├○tr#status000000000.hentry
|・├○tr#status000000000.hentry
|・├...
|・└○tr#status000000000.hentry
└□div.bottom_nav
・├●div.badge
・│└○a.highlight
・├●div.pagination
・│├○a.section_links /* next */
・│└○a.section_links /* prev */
・├●span.left
・│└○a.section_links /* RSS */
・└●br.clear
■ 東浩紀が
『恋空』の感想を書いていて大絶賛なのだが、そのときに自分は文体の稚拙さとか、人間が書けてない* などの要素は小説を読む上でまったく気にしないって言っていて感心した。想像するに東氏の場合はきっと本当にそうなんだろうと思う。だから清涼院流水とかでも普通に読めちゃうんだろうな。
ある程度、日本語の文章や日本語の小説を読み書きしていれば、稚拙な文章とうまい文章の見分けはつくようになる。センスのある人ならば、さらにそれ以上のことまで (上の文章と特上の文章のちがいなども) 見分けられるようになるだろう。
世間ではそのことをもって「文学がわかる」という能力の一部に数えるように思う。
しかし個人的には、そんな能力って本当に必要なんだろうか、と思うことがままある。
稚拙な文章を見て「アウト」と思ってしまうことが動物的な反射以上のものに思えないのである。
「ハイハイ、そりゃあなたは文学プロパーの人で、そういう趣味を刷り込まれてるからそう思うでしょうね。で、それで?」と。
これは自戒のために書いている部分もあって、わたし自身も稚拙な文章を見ると「ぐわー」と思ってしまうわけだが、それに安住したくはないなあと思う。
■ 読書
ドナルド・デイヴィドソン(著), 金杉武司(訳)
春秋社、2007
最近デイヴィドソンデイヴィドソン言いすぎだと思っている。最近わたしのなかではデイヴィドソンが流行っているのだが、明らかに自分の脳内の一過性のブームなので本当はあまり表に出さない方がいい。にもかかわらず論文にまでぽろりと出してしまいがち。
しかしこの本に載っていたインタビューはおもしろかった。
卒業してから、将来の計画は何もありませんでした。ガールフレンドが車を持っていたものですから、彼女のお父さんが大勢の有名人の代理人をやっているというハリウッドへ向かいました。『ビッグ・タウン』という、エドワード・G・ロビンソンが出ている週一回の私立探偵もののラジオ番組に原稿を書いたりしました。一九三九年の夏の大半は、ただ遊んで、泳いで、馬に乗って過ごしましたよ。その夏の最中にハーバードから電話があり、古典に重きを置いた哲学の奨励金があるが、受ける気があるかと聞いてきました。ちょうど、テシェマッハーという名の人が大金を残して、ハーバードの哲学の大学院生を対象としたフェローを設けたのです。古代哲学に関心のある人なんて、ほかに誰もいません。わたしはそれを受けることにしました。もしそうしなかったら、私はいったいどうなっていたんでしょうねえ。
邦訳p387、強調はわたし。
万事が万事この調子。このインタビューを読むと、若きデイヴィドソンがいかに何も考えていなかったかがよくわかる。何となく進学し、何となくビジネススクールに行き、それもいやになって軍隊に行き、帰ってきてからどうしようもなくなって大学に舞い戻るとか。フラフラしすぎ。まるで自分の人生を見ているようで、感涙を禁じえない。
しかしそんな彼も最後には哲学者として名をなしたわけで、きっとクワインを代表とするさまざまな人との出会いが大きかったんだろうと思う。
実に希望を持てるいい話だと思った。
■ 愛校精神
愛校精神とかうざいのであまり出すとアレなのだが。
わたしだって在学中は、「愛校精神うぜー」「こいつらうぜー」と思っていた。しかし卒業すると良い思い出しか残らない。
たまたま偶然出会った研究者のブログを読んでいたら、「学部1年のときは1単位しか取れなかった」と書いてあり、さらに留年することをほとんど何とも思ってないような記述からして、この人はわたしと同じ大学の出身なのではないかと思った*。やっぱそうだった。
■ 本
『統治と功利 (単行本) 』
安藤 馨 (著)
勁草書房、2007
TeXで書かれているという情報を得る。急に読む気が高まってきた。
論文とか本の最初に、使ったソフトウェアと日本語変換システムとOSを書いてほしい。特に人文書(全然関係ないが、ふだんつかってるエディタとブラウザも知りたい。あとおすすめのアウトラインエディタがあれば...って人文書に何を求めているのかと)。
どんなに素晴しい論文や本であってもMSWordで書かれているところを想像すると萎える。
エディタで書いてるとか手書きとかだったらそれはそれで評価が高まる。
マカーだったらいいという話ではない。ブコウスキーが実はマカーというのは、非常にがっかりさせる話だった。この手の哲学書やハードな人文書がマックで書かれていたら、やっぱがっかりだな。
HTMLで書いてるとか、「え?なぜ?」って話を聞くとその後すぐ本屋に走るかもしれない。
「この本は、PostScriptを手打ちするという血のにじむような努力を経てつくられている」とか。
■ プレゼンス
そういえば論文のプレゼンしないといけないんだった。
というわけでプレゼンツールを調べるが、s6.js以外あるまいという結論に落ち着く。印刷も(1ページずつ)やればいけそうだし大丈夫だろう。
■ 出発
当初の関心は、
- コミュニケーション、相互行為(ふつうの人がふつうにやっていることを理解したい)
- 作品と人(主に小説)
なので卒論のテーマはニクラス・ルーマンという社会学者の書いた芸術論だった。
この辺の関心はいまだにまったく変わっていない。
入学前および入学当初よく読んでいたのはニクラス・ルーマンとエスノメソドロジー(エスノメソドロジーに関してはいまだに非常に少ない量しか読んでないですけど*)。もちろん今でも読んでる(最近ルーマンはさっぱり読んでないけど。読む気はある)。
* だって翻訳が少ないんだもん。
もはやどっちかと言うと黒歴史だが、デリダとかドゥルーズとか読んでたこともある*。
* デリダの陰気な感じは今もわりと好きだけど。ドゥルーズは当時も今も何を言ってるのか理解できた試しがない。フーコーは今でも文句なくえらい人なのだろうと思っている。バルトのことはもう忘れた方がいいんじゃないかと思っている。
■ 修士1年
修論テーマとして当初考えていたのは、「批評行為」だった。これは主に上の関心を反映したもので、「ふつうの人はどうやって小説を読んで、どうやって作品について語るの?」を扱ってみたいと思っていた。
そこでアプローチの方法を色々と考えていたのだが、どれもいまいちピンとこない。結果「うーんうーん」と空回りして悩むだけの日々を送っていたのだが、ちょうどその頃、『可能世界・人工知能・物語理論』の翻訳がでたりしてフィクション論が微妙に流行ってる気配だった*。
* いまにして思えば、この本は結構いい加減な本だったのだが、その頃のわたしにはそんなことに気がつく由もなかった。
わたしの関心は「ふつうの人がふつうにやっていること」なので、作品と言ったときに考えているのは『ハリー・ポッター』とか『ドラゴンボール』のことなのだが、芸術論方面からアプローチすると、その辺がさっぱり理解されない。
そういう悩みをかかえていたこともあって、「フィクション」と聞いて「フィクションかー、フィクションはいいかもしれないなー」と思う。何しろわたしは、「夢・いつわり・嘘・まがいもの」に紛れて生きていくことをモットーとする人間なので「フィクション」という語にまずはぐっときた。
三浦俊彦『虚構世界の存在論』などを読むがもちろんさっぱり理解できない。
「勉強するしかあるまい」と決意し、『論理学をつくる』を解きはじめる。
大いにハマる。世の中にこんなおもしろいことがあったのか、どうしてもっと早く論理学の勉強をはじめなかったのだろうと悔いる。テーマをフィクションに設定したのが2006年の秋頃で、論理学の勉強をしていたのは、修士1年の冬休みから春休みにかけて、だったらしい。
細かい前後関係はよく覚えてないが、プログラムを書きはじめたのはその少し前だったと思う。今にして思えば、それまでさほど興味が無かったパソコンに対する関心が生まれたのは、ひとり暮らしをはじめ、夜ヒマになったことが大きいのではないか(学部時代は寮に住んでいたのでパソコンに興味なかった)。
あと2006年の5月くらいからユニバでバイトをはじめたので刺激を受けたのだろう。
その結果、bonsensに「にわかギーク」と言われたりした。
最初は本を買ってJavaScriptをさわっていた。で、その後なぜか(多分名前が似てるから)Javaを書いていた。しかし「Javaめんどくせー」と思い、「もっと入門者向けの言語にしよう」とRubyを書きはじめた記憶がある。そんでRubyで掲示板のCGIを書いた。一応動いていたものの編集機能とかがめんどうで、公開はなぜか一年後くらいになった(後のアーカイブ騎士団公式BBSである)。
偶然古本屋で見つけた『思考する機械コンピュータ』を読み、コンピュータ・サイエンスの奥深さに胸を打たれた記憶もある。
あと修士1年の頃は、近所にririinoue(後のtakakooishiである)が住んでいたので、影響されて何かポジティブだった(人に影響されやすい)。
ジュエリー(という人)と一緒に小説を書こう、同人誌だそうという話もあったので、宣伝のためサイトをつくり公開する。今確認したところサイトを公開したのが9月で、ブログを設置したのは2007年の1月らしい。もっと前だった気がするが、そう言えば「新年なのでブログでもはじめよう」と思ったのだった。
■ 修士2年(1)
戸田山本が終わったあとは、『言語哲学大全 3 意味と様相 (下)』とか『様相論理入門』を読んでた気がする。『様相論理入門』は半分くらいまで解いた。もう内容はすっかり忘れたけど、なんとかという公理を認めると体系Kができ、なんとかを認めるとBになって何とかを認めると体系がS4になるとか覚えていた。
様相論理も大変おもしろかったのだが、「こんなことをしていたら一生が終わってしまう」と途中で気がつく。何しろ中途半端に理解してしまったのでもういい加減なことも言えないし*、極めるのはとても無理だとわかってしまった。万が一消化できたとしても、結果としてアウトプットされるものは形而上学であって、どうあがいても社会学にはならないだろうと思ったので方向転換する。様相論理や形而上学は勉強する分にはおもしろいが、絶対専門にはしたくないし、むしろ怖いので近寄りたくないと考えるようになる。
* どっちにしろいい加減なことを言ったらだめですが。
幸い、論理学をやったおかげでそれまでさっぱり理解できなかった分析哲学の書籍が読めるようになっていた。わかるようになると面白いので、後はひたすら分析厨への道をつき進んだ。エスノメソドロジーは社会学諸派のなかでもとりわけ分析哲学へのコミットが強い派閥だと思うが*、わたしはそれを越え、社会学の学生としてはありえないくらい分析哲学にはまるようになる。
*「ウィトゲンシュタイン派エスノメソドロジー」を名乗る人たちがいるくらいのものなので。
その一環として『哲学探究』よりも『論理哲学論考』を評価するようになる。昔は『論考』は厨二病くさくて嫌いだったのだが、大人になったので「厨二病には厨二病のよさがあるよね」と思うようになった。「ブランダムはセラーズ先生から『探究』のウィトゲンシュタインを受けついだが、私はセラーズ先生から『論考』のウィトゲンシュタインを受けついだ」(大意)というミリカンを読んでいたせいもあるかもしれない。要するにいろんな読み方ができるもんだとわかったのだ。
夏前には、科哲の頭の良さそうな人がいるゼミとかに出ていた。すべて独学なのでまったく自信が無かったが、ゼミで適当に喋っていたら「なんでこいつ門外漢なのにこんなに詳しいの?」みたいな反応をされたのでちょっと自信がつく。
夏前には、あとオースティンにはまっていた。
「哲学という原初の太陽から諸々の惑星が飛び立っていく。今世紀のはじめわれわれは数理論理学という惑星が飛び立つところを見送った。いつの日かわれわれは再び言語の統一科学という新しい惑星が生まれるのを目にするだろう」(大意)という有名な演説を読んで感動したりしていた。
エスノメソドロジーについてもずっと門外漢の意識だったが、夏休み前にエスノメソドロジーの研究会で発表したら「これはエスノメソドロジーなんじゃないか」(大意)という反応があったので、ちょっと自信がつく。
あと読んでいたのは、グッドマン『事実・虚構・予言』とかクリプキ『名指しと必然性』とか。柄谷行人に影響を受けたクリプキ読解などを鼻で嗤うようになる。理論的な社会学者の大半が言語哲学をまるで理解していないことがよくわかるようになった*。
* わたしも大した理解してないですがー、「理解してない人」と「理解してる人」のちがいくらいはわかるようになった。
その頃には (もっと前かも) もはやすっかり大学院に嫌気がさし「たとえお金をもらったとしても進学したくない」と考えるようになっていたので、並行して就職活動をしていた。出版社とシステム屋をいくつか受け、とあるWeb屋に技術系で合格した。技術者としてやっていくのは不安もあったが、Webが好きだしいい加減でうさんくさいところも気に入っていたのでWeb屋は自分に向いていると思った。
夏休みにはその会社にインターンに行った。当たり前だが同期のなかで一番技術力が低い。
- もっと勉強しなきゃとあせりを感じるが、
- 一方で論文の締め切りもせまってくる。
本当はもっと計算機の勉強をしたいのに関係ないことをしなければならないジレンマに悩む。ジレンマのせいで心がすさみ、鉛筆を1000本折る会を開催したりする。ririinoueに怒られたが、バカバカしいイベントのお陰でちょっとすっきりしたような気がする。
■ 修士2年(2)
論文の方では、とにかく経験的なリファレンスがなければならないと思い、小説のあらすじやレビューを集めだした。
はじめては手動で集めていたが、この頃にはRubyが結構書けるようになっていたので、Amazon APIからカスタマーレビューを集めてくるプログラムを書いた。
プログラムについては、「毎日シェルを叩くと上達する」ということがいつからかわかってきたので、気になることがあるたびにirbやFirebugのコンソールを叩いた(RubyとJavaScriptしか書けないので)。あと一日だけ集中してコンピュータ言語Cを勉強してみた。Cの構造体とポインタに触れたおかげで、「オブジェクト指向とは何か」が飲み込めた気分になる。
暇を見つけてアセンブラでHello,Worldを書いたりもした。なんとなく計算機の勘所がわかってきたような気分だった。
プログラムを書いたので、あとはとにかくデータを集め分類した。
量は集めたが、統計的な研究ではないので、データをにらみながらとにかく「ふつうの人が何をやっているのか」を考える。
一番参考になったというか、「とにかくこれを真似しよう」と思ったのはサックスの「会話データの利用法」だった。
言語哲学の論文のような一般性の高い概念モデルと膨大な会話データの参照がきわめて高いレベルで調和しているように見えた。『論理哲学論考』の真似をしたような短かいテーゼを連ねていくスタイルといい、わたしの目には「あ、これは言語哲学の蓄積を社会学の領域で活かそうとしてるんだな」という風にしか見えなかった。
もちろん後の会話分析の着実な展開を考えるとまだ荒削りで不器用なのだが、その分だけ本質がよく見えるような気がした。
今や自分は研究に向いてないとよくわかっていたので、論文を書くのはとにかくつらかった。締め切りの直前には「早く学校が火事になって締め切りがうやむやにならないか」と口癖のように言っていた。
あと現実逃避でJavaScriptを書いていた。最初にJavaScriptを書いていた頃は何もわかっていなかったが、この頃になるとJavaScriptがいかに美しい文法を持っているかが理解できるようになっていた。JavaScriptは入手しやすいので、他人が書いたコードを読むようにした。prototype.jsを読み、jQueryを読み、LivedoorReaderのコードを読み、(はてなの)Ten.jsのコードを読んだ。どれも大変勉強になった。amachangのjavascript-xpathを読んでいたら、最後に"Thanks for reading this source code. We love JavaScript."って書いてあってうれしかった。自然言語だけではなく「コードを読む」ことができるようになってうれしかった。
論文は考えていることがわかりにくいと言われがちだったので「とにかくわかりやすくすればいいんだろ」と思い、理論の部を丁寧に整備するようにした。用語を定義し、かみくだいて解説する。「用語の整理」というタイトルの章にかなりの時間をかけた。
テーマとしては「あらすじとストーリー」「ジャンル」を扱った。「フィクションを扱う」と銘うっておきながら、「ストーリー」と「ジャンル」しか扱わないのはどう考えてもバランスが悪いのだが、時間が無かった。もう1、2週間あればあと1章2章追加したかもしれないが、力がおよばなかった。
われながら進行はひどいものだった。あらすじを扱った部分の原型は夏休み前にはできていた。夏休み中はインターンやバイトに行きジレンマに悩んでいる内に終わり、論文はまるで進まなかった。Subvesionのログによると、わたしが論文の執筆を再開したのは10月末だったらしい。
その後11月くらいに週単位のスケジュールをたてたが、まったく守れなかった。
昔はあまり悩まなかったので量産できたが、今はとにかく書くのがつらい。150枚書くのも死ぬ思いだった。
分量を書くのは無理だったので、形式だけはきちんと整備するようにした。
- どういう問題をたて
- 結果として何がわかったのか
をはっきり書いた。この辺はラストスパートをかけ、最後の数日間でがんばった。お陰で見え方はずいぶん変わったように思う。
バランスの悪さ以外に、自分で読んだ感想としては「どうしてこんなに重苦しいんだろう」というのが気にかかった。
フィクションという本来楽しいものを扱っているはずなのに、文体といい内容といい重苦しい。きっと「つらい」「つらい」と思いながら書いていたせいだろう。この点については、もう本当にどうしようもない(これだけは時間があっても解決しない)のだが、この点をとってみてもわたしが研究に向いていないことが実によくわかった。
論文をwebでも公開するって言っておきながらいまだに公開されていないのは、単にわたしがさぼっているせいです。
会話分析における会話の筆写データのような扱いのつもりだったので、Amazonのレビューに出典をつけなかった。しかしそれだと著作権法上正規の引用として認められない気がしたので、全部のデータに出典をつけてから公開しようと思いつつ、その作業を後回しにしている。
↓websvnにあがっているPDFファイルは実質最新版と同じものなので、もうさっさと読みたいと思った人はこれをダウンロードできる。
しかしあくまでも正式公開は作業後にする予定なので、わたしは著作権法に違反などしていない、作業過程のファイルがダウンロードもできる状態になっているだけだ、という態度をとりたい。
http://www.at-akada.org/websvn/listing.php?repname=master_thesis&path=%2Ftrunk%2F&rev=169&sc=0
■ コメント
少し前あまりにスパムコメントがうざいのでMovable Typeのスパム判定基準を1段階きびしくした(数字で指定するようになっている)。
そうすると認証しないとコメントができないようになってしまった。
それはよくないんじゃないかと思い、判定基準を低くしたらまたスパムコメントがたくさん来た。
OpenIDのコメント認証、名前の部分が「http://wwww.hatena.ne.jp/なんとか/」となるのが嫌なのだが、改善する方法はないかな。きっとあると思うのだが、考えるのを拒否している。
■ 一枚岩
よく何かに対する一般的な批判をかわすために「なんとかは一枚岩ではない」と言っている人を見る。
「オタクは一枚岩ではない」とか「フェミニズムは一枚岩ではない」とか。
しかしそれってよくないんじゃないかと思う。一枚岩じゃないんだったら、そこにつけこむ隙があるってことじゃないか。
もっと「われわれは一枚岩であり、一糸の乱れもない」などと言っていくべきじゃないか。
■ 書き割り
「書き割り」という語を使いたくてでてこないことがよくあるので忘れないようにここに書いておく。
■ 水
大分前から部屋で水漏れが起こっているのだが、大家に報告すると面倒くさそうだと思って報告していない(部屋がカオスなので大家や工事の人を入れたくない)。
しかしあまりに長期的に放置するときっとよくないのでそろそろなんとかしよう。と、ここに書くことでモチベーションを高めたい。
■ 料理
自分史的に、とてもひさしぶりに自炊を再開した。春休みの間に生活をよい方向に改善しようと思っている。次は部屋の片付けだ。
■ 近代的主体
これはあまりはっきり書くとよくないが、「近代的主体を解体しなければならない」とか「大きな物語を解体しなければならない」などと言いつつ、具体的な政治方針をまるで打ち出さない文化左翼の人を、知らず知らずのうちに上から目線で見ている気がする。
なぜそうなのかをつらつら考えてみるに、きっと自分のなかにもっと強力な左翼のイメージがあるからだろうという気がした。
「アナキズムはリベラルでとっつきやすく人気があるが、ぬるい。本当に組織力と実行力があったのはマルクス主義だったのだからそっちを評価すべきだ」とかそういう------今時完全な希少種と言ってよい------意見の人がいるなかで育ったのが大きいのだろう。他の環境にいれば完全に政治音痴になっただろうことを思いあわせると、ああいう環境で育って本当によかったと思っている(念のため書いておくと、これは別に「マルクス主義者になった」という意味ではない)。
よく「古典を読む意義」とは何かということを考えている人がいるが、自分のなかでは「現在と距離が取れる」という面が大きいと思う。
とりわけ思想や態度のようなものについては、現在と距離がとれないかぎり「流行りものだ」ということに気がつきにくい。
しかし100年前、200年前の本でもおもしろく読めることに気がついてしまえば、一気にいろんなことがどうでもよくなる。どうでもよくなるというか、他のさまざまな選択肢があるなかでの1つでしかないんだなということがよく見えるようになる。
それはもちろん古典を読むことだけで得られるものではなくて、ソースコードに耽溺することでそれを見出す人も、数学に耽溺することでそれを見出す人もいるんだと思う。
話がずれたが、自分にとって大学生活や寮生活というのは巨大な古典に接するようなものだったなということを思ったのだった。
■ メモ
「はかない」という言葉を見て、なぜか「パンツをはかない」という意味だと思った。「はかないからといって美しいわけじゃない」。
■ 部屋とYシャツとベーコン・アンド・スパム
英語ってものをリスト化*するときに最後のものの前にandつけるじゃないか。
* ここで言う「リスト化」は「ものを並べる」くらいの意味で使っている。
昔から何でそんなことすんのかよくわかってなかったけど、今日突然わかった。
入れ子リストを表現できるからじゃないか。
英語話者に聞いて確認したわけではないから違うかもしれないけど。とりあえず「最後の要素の前に決まった言葉を入れる」という文法がそれなりに合理的なものであることを説明したいと思う。
たとえば、このルールを厳格に守るなら、
「スパム、スパム、エッグ、アンド、スパム、ベーコン、アンド、ソーセージ」
と耳で聞いただけで、それが以下のような二重のリストであることがわかる。
[スパム, スパム, エッグ, [スパム, ベーコン, ソーセージ]]
ただし、このやり方でどんなリストでも表現できるわけではない。
たとえば、
「スパム、エッグ、スパム、アンド、ベーコン、ソーセージ、ベークドビーンズ、アンド、スパム」
の場合、解釈が定まらない。
これは
[[スパム, エッグ, スパム, ベーコン], ソーセージ, ベークドビーンズ, スパム]
というリストかもしれないし、
[スパム, [エッグ, スパム, ベーコン], ソーセージ, ベークドビーンズ, スパム]
かもしれない。
しかし、
- 内側のリストを必ずリストの最後の要素にする
というルールを守るなら、リストを無限に深くできる。
- 1リストの最後の要素の前に「アンド」を入れる
- 2入れ子リストをつくる場合、内側のリストは必ずリストの最後に挿入する
という2つの条件を守れば無限の深さのリストをつくることができ、しかもリストの解釈に曖昧さが生じることはない。
以下証明。
- リストにアンドが1つだけ含まれていたとき
リストが1重であることは自明である。また、リストのはじまりにも終わりにも曖昧さはない。
- リストがk個のアンドを含むとき
Lがk重のリストであり、k個のアンドを含む場合を考えよう。
このとき、外側から数えてl個目のリストをL_lと呼ぶことにする。たとえばL_1はL自身であり、L_2はL_1の内側のリストである。
このとき、Lの最奥のリストL_kを考えよう。
L_kにはそれより内側のリストは含まれない。
従って、L_kの最後の部分は、
「...アンド、x」という形になっていると考えられる。xはリストではない任意の要素である。
このときxを任意のリストと置きかえることでk+1重のリストを作成することができる。
新しく挿入されたリストL_(k+1)のはじまりはk個目の「アンド」であり、終わりはk+1個目の「アンド」の後ろである。
よって「アンド」の位置と数さえわかればリストのはじまりと終りは明確である。
以上より、1,2の条件の下で、われわれはリストを無限に深くすることができ、しかも作成されたリストには曖昧さがないことが証明された。
■ 疑問点
バイキングとスパムの関連性がわからない。
プログラミング言語であるPythonの名前の由来はMonty Pythonだそうだが、言語の仕様にもMonty Pythonにちなんだ部分があったりするんだろうか。たとえばspamという関数が使えたりするんだろうか。
もしそういうことがあるんであれば、早速pythonの勉強をはじめたいんだけど。
■ 解釈の多義性
世の中には「解釈の多義性」とか「解釈の不確定性」を価値ある現象のように言ってありがたがる人がいるじゃないか。
そういう人って、
- 「スパム、エッグ、スパム、アンド、ベーコン、ソーセージ、ベークドビーンズ、アンド、スパム」
がいかなるリストであるか決定できないという状況を見て喜んだりするのかな。
あるいは、日本語の場合、否定疑問文に対する返答として「はい、そうです」と「はい、そうではありません」の両方が許されるから、「はい」と言っただけではどういう意味なのか決定できないことがある。
たとえば以下のような場合。
「これ、すごくない?」
「はい」
この場合、「はい」という返事が「はい、すごいです」という意味なのか「はい、すごくないです」という意味なのか決定できない。
解釈の不確定性をありがたがるような人は、この現象がすばらしいことだと考えるんだろうか。
言い換えれば、「はい、すごいです」とか「はい、すごくないです」という返事より、「はい」という返事の方が価値があると考えるんだろうか。
わたしは、解釈が不確定であるというのは、おもしろくも何ともないふつうの現象だと思う。
おもしろいのは、「うまいダブルミーニングになってる」とか、「意図せずダブルミーニングになってるところがおもしろい」とか、そういう場合であって、解釈の不確定性一般がおもしろいわけではない。
■ ふと思った
「日本一のランナー」と呼ぶか「世界大会最下位のランナー」と呼ぶかで、(たとえ同じ人のことであったとしても)その意味はまったく『異なる』と言う。
一方、「AはBにみかんをあげた」と「BはAにみかんをもらった」という2つの文は『同じ』意味だと言う。
ここで、「異なる」と言われた場合の『意味』と「同じ」と言われた場合の『意味』はそれぞれ同じことをイミしているのだろうか。
ぼかしても仕方ないので、書くと、前者の『意味』はときに『意義』sense(内包)と呼ばれ、後者の『意味』はときに『指示』reference(外延)と呼ばれる*1。「宵の明星」と「明けの明星」は外延(指示対象)は同じ(金星)だが、その内包(意義)は異なると言ったりする。外延は比較的定義しやすい。
もしも「日本一のランナー」と「世界大会最下位のランナー」という表現が同じ外延/指示対象を持つならば、つまり、同じ人物のことを指しているならば、
昨日xに会った。
という文のxの部分にどちらの語を代入しても、文全体の外延的意味は変わらない。これによって「外延的意味」を文の場合にも拡張できる。
つまり==という記号を「外延的意味が等しい」というイミで使うならば、
A,Bがそれぞれ指示表現であり、同じ指示対象を持つならば、 A==B
一方 X==Yならば S_X==S_Y (ただしS_X,S_Yは同じ文の同じ部分をそれぞれX,Yで置き換えたものであり、ともに文法的に適格な文であるものとする)。
ちなみにこれは、わたしが今適当に書いてみただけのいい加減な定義だが、もっとブラッシュアップすること自体は可能だろう。この定義によいところがあるとすれば、一応再帰的な定義になっているので、有限のルールだけを使って、無限のケースをカバーしているところである。
一方、「日本一のランナーに会った」と「世界大会最下位のランナーに会った」という2つの文に何か違いがあるのだとすれば、それは内包的意味の違いであるとされる。
以上は単に『外延的意味』と『内包的意味』という2つの語を定義しただけの話だから、ここで疑いをはさむのはヘンな話だと思う。しかし、どこかにねじくれたものを感じる*2。
問題は、「内包的意味」というものを説明するにあたって、どうしても「内包的意味が同じ場合」ではなく「内包的意味が異なる場合」を参照してしまいたくなることだ。
日常的に「意味が同じ」という形で『意味』という概念を使うとき、対象となるのは、ほぼ外延的意味であるように思われる。日常会話で「内包的意味が異なる」といった趣旨の発言をしているところは想像できるが、「内包的意味が同じ」というのはどんな場合であるかが想像できない*3。
しかし、同一性の条件すらもうまく規定できないならば、「内包的意味」という概念はほとんど役に立たないのではないだろうか。じゃあ内包なんか無いのかというとやっぱりそういうわけでもないし、考えていたらだんだんわけがわからなくなってきた。
外延は「値の同一性」、内包は「個体の同一性」を指しているのだとすればどうだろう。
つまり、
「日本一のランナーに会った。」
「世界大会最下位のランナーに会った。」
というそれぞれの発話を、それぞれ新しい表現を生み出すものとして考える。外延的意味によって比較されるのは、それぞれの表現に属する「値」のみであり、個体としての同一性までは問われない。
擬似的な言語を使って表現すれば、
a = new Expression(); a.reference = ...; b = new Expression(); b.reference = ...;
と解釈する。
a,bは表現クラスに属する別々の個体である。
しかしExpressionは、referenceというプロパティの値によって比較されるので、
このとき
a == b #=> true
となる。
一方、内包的意味が等しいことを===という記号で表現しよう。
a,bは同じ値を持つが、異なった個体(オブジェクト)なので、
a === b #=> false
じゃあ、内包的意味が同じ表現をつくるにはどうすればよいかと言うと「代入」すればよい。
「昨日日本一のランナーに会った。」
「その『日本一のランナー』って表現はなかなかいいね。」
「その『日本一のランナー』って表現」の部分は、「日本一のランナー」という前の発言の引用である。
従って「その『日本一のランナー』って表現」という部分をcとすれば、cが参照する値とaは内包的意味を等しくする(なぜならばcが参照する値はa自身だからである)。
c = a; a === c: #=> true
しかし正確に言えば、cはaと「表現として同一」であるわけではない。cが引用表現として参照する値がa自身であるためa===cとなるのである。
ところがこの際、コンピュータ言語の実装としてならばともかく、自然言語のモデルとして考えるならば、引用表現であるcが表現オブジェクトではないというのは一貫性に欠ける。従ってcを「変数」として特別扱いするのは止め、aをreferenceとして持つ表現と考えよう。
つまり以下のようになる。
c = new Quote(); #QuoteはExpresionのサブクラス c.reference = a;
このとき、cはa自身とは異なる個体であるため a===c は偽となる。
一方
c.reference === a
これはtrueを返す。
つまり、「内包的意味が等しい2つの異なった表現があるか」という問いは、「自然言語に変数はあるか」という別の問いによって置き換えられる...のか。一方「変数」とは何かと言えば「つねに評価された後である記号」のことであり、われわれが変数に出会うのは変数に代入する場合(左辺値としての変数)であるか、すでに評価され値に姿を変えた場合(右辺値としての変数)であり、「変数そのもの」を精査する機会が訪れることはない。従ってあらゆる表現はオブジェクトとして固有の位置を持つにもかかわらず、変数にはそれがない。唯一変数だけが純粋な記号である。そういえばある哲学者は(ある哲学者といえばウィトゲンシュタインのことに決まっているわけだが)、「対象」という謎の概念をさんざん駆使したあげく「対象とは変数(変項)のことである」と吐き捨てたのではなかっただろうか。
しかしLispにはquoteがあるので、Lisp的な世界でのみ、われわれは純粋な記号そして純粋な対象に出会うことができる。問題は自然言語がLispであるかどうかだが、コンピュータ言語CであってもLispであっても原理的に同じプログラムを書くことが可能であるならば言語の違いとは結局、内包的意味の違いにすぎず、再び最初の問いに戻らなければならない...のか。
...何を言ってるのかわからないので、この辺でやめる。
- *1: 個人的には内包的意味のことを「意義」と訳すのはあまり好きではないし、「内包」とか「外延」などというイミのわからない語も好きではない(そもそもこういう言語論的な文脈における「内包」とか「外延」という語の使い方は、この2語の本来のイミとも違うようだし)。本当は前者を「意味」、後者を「指示」とでも訳したいところだが、「意味」という語は「内包」と「外延」の両方をまとめたものに対して使いたいので、結局「内包的意味」「外延的意味」という語を使う
- *2: 自分で定義しておいて疑問を差しはさむのはヘンだが、自分のなかの複数の直観の間に齟齬があるのでこういう書き方になってます。要するに思考過程をメモしているだけなので気にしないでください。
- *3: しいて言えば「ニュアンスがぴったり」という場合だろうが、万人の間で「ニュアンスがぴったり」が一致することなんてあるだろうか
■ 風邪
風邪をひいた。
■ 実家まとめ
実家から帰ってきた。
- 実家の食事は健康的。
- 実家は寝ころがる場所がいたるところにある。
- 実家は暖い。
など、東京のアパートに帰ってきたところの環境と対比させてみると、実家は天国かと思った。
帰ってきてから気づいたのだが、今回は、友達に会ったのが二日。それ以外の日は煙草を買いに行く以外の用事ではまったく外出せず、居間でテレビを横目に見ながらずっと勉強していた。ひょっとしておれって勤勉なんじゃないか?と思わせる生活であった。
- 親に「バックラッシュとは何か」と聞かれた。
- 「最近の若者は保守的だ」という意味だと説明した。
- 今回よかったのは、両親とも工学系なので、はじめてそっち方面での交流の可能性がひらかれたことだった。
- FORTRAN+パンチカードでプログラムを書いた話などを聞く。
- 居間でRailsの本を読んでいたら「Rubyって何よ」って聞かれたので「Perlみたいなやつだ」と説明した(Perlは知っていたらしい)。
- さらにJavaScriptとJavaはまったく関係のない言語であることなどを解説した。
- 弟は生活時間帯がおかしい。ので一緒の家にいるにもかかわらずまったく存在感がなかった。
- 今回の家族交流のハイライト。
- 妹がPCのディスプレイに向っている。
- 通りすがりに後ろから見ると、見馴れたインターフェイスに流れるコメント。
- わたし「ニコニコ動画見てるの?」
- 妹「うん」(笑顔)
- わたし「いいよね、ニコニコ」
- なんかゲームの動画だった。
- ふだんまったくテレビを見ないので一年分くらいの量のテレビ見た。
- のだめのドラマなどを見た。最初はのだめの喋り方に違和感があったがすぐ慣れた。わりとおもしろかった。
- 小島よしおという人についてわたしはまったく知らないのだが、雰囲気をかきみだしても堂々と「でもそんなの関係ねえ」と開きなおるところが受けていると新聞に書いてあった。ひょっとすると、小島よしおが好きだというのは猫猫先生にあこがれる気持ちに似ているのだろうか。
- 札幌で買った『 東方河想狗蒼池』がとてもよかった。
■ クワイン化
自分自身を出力するプログラムのことをquine(クワイン)と言うらしい。
クワインという名称はもちろんかのウィラード・ヴァン・オーマン・クワイン大先生から(直接の由来は『ゲーデル,エッシャー,バッハ』らしい)。
わたしにはクワインを紹介する知識も資格もないが、クワインがどういう人だったかということは、デイヴィドソンによる下の発言がよく示していると思う。
それまで私は、哲学は芸術批評よりは厳密だとしても、科学ほどには厳密な学問ではないと思っていました。大学院の一年目に論理実証主義についてのクワインのセミナーを取ったことで、考えが変わりました。
『合理性の諸問題』p389
「哲学は科学ほどには厳密ではない」という(多くの哲学研究者も含め)ほとんどの人間が当たり前に受け入れている信念を書き換えられる人間など滅多にいないと思う。
それはそれとして、クワインを書いてみた。Lispは書けないのでJavaScriptで。いずれ他の言語でも書いてみよう。
まず関数を増やしていいんだったら。
(Firefox限定だったら、最初からtoSourceが使える)。
var k = function(x){return "(" + x + ")"};
var uneval = function(x){
if(x.toSource)return x.toSource();
else return k(x);
};
(function(x){
return x + k("uneval"+x);
})
(uneval(function(x){
return x + k("uneval"+x);
}))
増やしちゃだめって言われたらunevalの部分をベタ書きにすればいい。
(function(x){
return x + "(" + "\"(\"+" + x + "+\")\"" + ")";
})
("("+function(x){
return x + "(" + "\"(\"+" + x + "+\")\"" + ")";
}+")")
リンク先にあった自己参照プログラムも書いてみた。
(function(self){
/*なんか処理*/
})
((function(x,y){
return y + k(x + k("uneval"+x+","+"uneval"+y));
})
(
uneval(function(x,y){
return y + k(x + k("uneval"+x+","+"uneval"+y));
}),
uneval(function(self){
/*なんか処理*/
})
))
/*なんか処理*/の部分ではselfというキーワードでプログラム全体を参照できる。
(function(self){
alert(self);
eval(self);
})
((function(x,y){
return y + k(x + k("uneval"+x+","+"uneval"+y));
})
(
uneval(function(x,y){
return y + k(x + k("uneval"+x+","+"uneval"+y));
}),
uneval(function(self){
alert(self);
eval(self);
})
))
とすると、無限ループ。ブラクラになるので実行しないように。
■ ノンジャンル
いつもブログの下書きを「連想メモ帳」というアプリケーションにメモしているのだけど、今開いたら数日前に2007年のベストについて悩んだあとがあった。
■ 2007年のベスト。
ノンジャンル
- 論理哲学論考
- とかち
- 百合星人ナオコさん
3つしか思いつかなかったらしい。ひどい組み合わせだ。
■ ●√□
あいかわらず実家にいる。
鏡音リン動画を見ながらゲーデルを読んだりしている。
とりあえず前半の関数はほぼすべてJavaScriptでも(関数を返す関数を書けるような言語なら何でもいい)「書ける」ことがわかった。
以下のようにして段々複雑な関数をつくっていく。
- 原始再帰関数 - Wikipedia
も参照。
出発点として以下の3つの関数のみを許す
- Constant
定数関数。
つねに0を返す関数。
- Successor
直後関数。
与えられた数の次の数を返す関数。つまり1を足す関数。
- U(n)
射影関数。
n番目の引数を返すだけの関数*1。主に下の合成と一緒に使う。
上記3つの関数はもちろんJavaScriptでも書ける。
ただしU(n)はn個あるので、nを渡して新しい関数を返すような関数Uをつくることで何とかする。
U(2)(3,4,5) //=> 4
関数をつくる操作として以下の2つのみを認める。
- 再帰的定義
初期化用の関数と差分を求める関数を渡して新しい関数をつくる。
説明しづらい。
- 合成
ある関数の引数を他の関数でフィルターするようにして、新しい関数をつくる。こっちも説明しづらい。
たとえば、
add2 = Successor.compose(Successor)
直後関数(Successor)の引数に直後関数の結果を渡すようにして、新しい関数をつくる。つまりここでは2をプラスする関数をつくっている。
これらの操作は関数を受け取って新しい関数を返すようなJavaScriptの関数として実装する。Compose(Successor,Successor)より、Successor.compose(Successor)の方が見やすいと思うので、composeはFunctionコンストラクタのプロトタイプ関数にする。
(toArrayは自分で適当に実装する)。
function RecursiveDefinition(psi,mu){
var phi = function(){
var args = toArray(arguments),
n = args.shift();
if(n == 0){
return psi.apply(null,args);
}
else if(n > 0){
return mu.apply(null,
[
n-1,
phi.apply(null,[n-1].concat(args))
].concat(args)
);
}
};
return phi;
}
Function.prototype.compose = function(/*function list*/){
var functionList = arguments,
psi = this;
var phi = function(){
var originalArgs = arguments;
var filetered = [];
for(var i=0,l=functionList.length;i<l;i++){
filetered.push(functionList[i].apply(null,originalArgs))
}
return psi.apply(null,filetered)
};
return phi;
};
原始関数も新しい関数をつくる操作も書ける。そしてゲーデルが書いている関数は(1つを除いて)すべてこれらだけを使ってつくられているので、原理的には(1つ以外)すべてJavaScriptでも書ける。
たとえば2項の足し算をする関数は以下のようになる。
add = RecursiveDefinition(
U(1),
Successor.compose(U(2))
)
ゲーデルが自明と言って飛ばしたイコールも意外に難しかった。
subは引き算とし、andFは2項がともに0のときのみ0、それ以外の場合には0を返す関数であるとする(ふつうと逆で0がtrue、1がfalseになってる)。
eqFは2項が等しいときにのみ0を返す。
(つまり A==B <--> A-B==0 かつ B-A==0)
eqF = andF.compose(
sub.compose(
U(1),
U(2)
),
sub.compose(
U(2),
U(1)
)
);
で、最初の方の自明な関数と関数3くらいまで書いてみたんだ。定理4は関数そのものではなくて最小値を求めるような関数をつくるためのアルゴリズムを解説したものなので、それは関数を受け取って関数を返すJavaScriptの関数として書いたんだ。
しかし、13が素数であることの判定に5分くらいかかった...。
無論パフォーマンスなんかゲーデルの知ったことではないのである。
だからゲーデルの関数を逐語訳的にJavaScriptに翻訳すると絶対動かないんだよ。正月を完全にこれに費してしまったよ......。
一応以後の展開を解説しておく。
この論文ではこうやって段々複雑な体系を構築し最終的にはこの関数の体系の中でもう1つ別の体系を動かすことを目指す。
しかる後に、「外の体系」でできることはすべて「中の体系」でもできることを証明し、「中の体系」のなかでさらに「中の体系」を動かすというマッドな展開へと進んでいく。そこからが面白いんだが、まだ全然クリアに把握できていない。外の体系と中の体系が交差する辺りが複雑すぎて、知恵熱が出そうになってきた。
念のため、鏡音リン動画も紹介しておく。まずは定番(?)のロイツマがなかなかよかった。
http://www.nicovideo.jp/watch/sm1928467
オリジナルでは以下が比較的気に入っている。
http://www.smilevideo.jp/view/1937901/114182
しかしとかち完コピをめざした以下の動画などを見ると、声の表現力などはまだずいぶん向上の余地があると思われるので、技術力の蓄積が諸々のオリジナル曲まで底上げしていくだろうことを期待し、今後の展開を楽しみに待ちたい。
http://www.nicovideo.jp/watch/sm1928995
全然関係ないが、最近では以下の動画もおもしろかった。ハリポタパロディ。嘘字幕ものは安定しておもしろい。
http://www.nicovideo.jp/watch/sm1446451
後編はまだ全部見てないので楽しみだ。
- *1: 原論文では射影関数はでてこないのだが、無いといろいろ面倒くさそうなのでこれも許すことにする
■ ゲーデルと年越し
ゲーデル(著), 林晋(訳), 八杉満利子(訳)
岩波書店、2006
『不完全性定理―数学的体系のあゆみ』を読んでいたのだけど、歴史的解説ばかりで読むのがたるくなってきて、「計算させろ! 証明させろ!」と本編「プリンキピア・マテマティカおよび関連した体系の形式的に決定不能な命題についてI」に突入してみた*1。思うんだが、こんなもの口で説明されても、手を動かさないと絶対わからんと思うんだよね。もしもわたしがゲーデルの解説書を書くんだったら公文式みたいなドリル形式のやつにするけどなあ。そういうのどっかで出てないかな。
というわけで読みはじめたのだが、もっと全然歯がたたないかと思ったのに意外に意味がわかる。と言ってもまだはじめのところなのですぐまた難所にぶつかるかもしれないけど。なるべく証明を追いかけたり、自分で解いたりしながら、ゆっくり進めます。
とりあえず最初の方は、ラッセルのタイプセオリーについて初等の知識があったのが大分助けになった。『哲学の歴史 11 20世紀 2 (11)』の戸田山和久氏の論文と、岩波新書の『ラッセルのパラドクス』を読んでいたのがよかった。
あとなんでプログラマーが変数の「型」って言うのかよくわかってなかったけど、これ読んでイメージがつかめた。「型」ってまさにタイプセオリーのタイプのことだったんだなあ。
http://ja.wikipedia.org/wiki/%E5%9E%8B%E7%90%86%E8%AB%96
細かい歴史的経緯はよくわからないが、紆余曲折を経て、ラッセルパラドックスのおかげで型付きの言語が生まれたと言えなくもないのか*2?
あとこれはみんな思うことかもしれないけど、読んでいるとどうしてもプログラムで書いてみたくなる。ゲーデルコード化する関数なんてまさに計算機むきではないかと思うんだけれど。そういえば、ゲーデルは証明をLispで書くべきだったと、無茶なことを言った人もいたそうです。
http://www.unfindable.net/~yabuki/article/why_lisp.html
ちなみにゲーデルコード化はどう書く?orgの問題にもなっている(正の整数だけだけど)。
自分でも何か書いてみたいが、無限集合や全称量化を計算機でどう扱えばよいのかがいまいちわからないなあ。そう言えばRubyにSetクラスあったなと思って見てみたけど、これじゃ無限集合扱えないじゃないか。
http://www.ruby-lang.org/ja/man/?cmd=view;name=set
集合自身にメンバーへの参照を持たせず、メンバーかどうかを判定する関数だけを用意すれば無限集合を扱える気がするんだが、誰かそういうノウハウを公開してないかなあ。
あと以下は自分用のメモ。
この本はよさそうだ。
あと↓この本ちょこちょこやってる。
数学楽しい。
■ 去年のベストとか
書こうと思って放置している。
まだ選んでもいない。
こういうのって新年になってから発表したらまずいものだっけ。
■ 名所めぐり
新年からぐだぐだな感じでだべったりとらのあなに行ったりした。
どうでもいいが、「虎穴に入らずんば虎児を得ず」の対偶は「虎児を得たならば虎穴に入った(ある人が虎の子供を得たならば、その人は虎の穴に入った)」である。言いかえるとずいぶん印象が違う。


