JavaScript
ポエム

コードに落とし込めば哲学もわかりやすくなるだろ、という試み

続編: コードに落としこんで 哲学やろうぜ その2 ~海賊王になる方法~


本稿での試み

近年の哲学の潮流は「分析哲学」と呼ばれるもの。明晰な論証を特徴としているが、日常言語(つまり日本語とか英語)であるので、なんか言いくるめられてしまうように感じる。

そこで、一意に解釈可能なプログラミング言語で実装してみて、言わんとしていることを確かめる=納得する という試みをしてもよいのではないか?と考えた。

もちろん、納得する手段はプログラミング言語でなくてもよい。数式によるモデリングや、記号論理の論理式での検証でもよい。ここはQiitaなのでプログラミングで確かめようということ。

本稿では、手始めに、何かと批判の多い「意味の心理主義」についてコーディングしてみようと思う。


意味の心理主義

概要: 「アセロラの実は赤い」などの言葉の意味は、「あなたの心に浮かんだそのイメージ」であるよ、という説。言葉の意味がその人の心への表れであり、人によって言葉の意味が異なりうるという意味で、私秘的であるとも言われる。

歴史的経緯と現在での評価: わかりやすい説なんだけど、分析哲学者からはボコボコに批判されつづけており、サンドバックとしてひきあいにだされることが多い。

興味深いトピック: 言葉の意味が私秘的であったとしても、私たちは「アセロラの実は赤い」という言葉で意思疎通(のようなもの)ができる。これは中々興味深いことである。アセロラの実や自分の血液を見て「(僕にとって)緑色だ」としか言いようがないイメージをもつ人であるミドリさんがいたとしても、僕は彼女と「アセロラの実は赤い」という言明に対して、見解の一致を見る。もっというと、ミドリさんと僕の言葉の意味=イメージが一致しているかどうかを確かめることさえできない。色盲のテストを行ったとしても、彼女と僕は同じ結果を得るだろう。


コーディング

前節の「興味深いトピック」をコードに落とし込んで見る。

「赤」のイメージ: 僕が「赤」という言葉を見たり聞いたりした際に心に浮かぶイメージに名前をつけよう。コードに落とし込むのだから、計算機で表現できる形がよいので、237 という整数値をあてよう。ミドリさんが「赤」という言葉を見たり聞いたりした際に心に浮かぶイメージには 114 という整数値をあてよう。実際には、イメージは整数値ではなく、心のどこかに結ばれる像である。それらの識別子として整数を選んだということ。別に文字列でもよいし、浮動小数点でもよい。

const IMAGE_X = 237; // 「赤」によって結ばれる私の心でのイメージ

const IMAGE_Y = 114; // 「赤」によって結ばれるミドリの心でのイメージ

「赤」の経験: 熟れたリンゴを見たり、うっかりして怪我をした時にできた傷口から見える血液を見たり、虹や分光器を使って太陽光線のスペクトル分解を行ったりする。この体験で僕には 237、ミドリさんには 114 という心の像が結ばれる。これを言葉にするために他人の言語使用を観察し、237には「赤」という言葉があてられることを学ぶ(僕が米国人であれば red という言葉をあてると学んだだろう)。つまり「赤」の意味とは237のことなのだ、となる。

// 僕はリンゴや血液、アセロラをみると 237 が思い浮かぶ

function xImageOf(target) {
if (['apple', 'blood', 'acelora'].includes(target)) {
return IMAGE_X;
} else {
return null;
}
}

// 僕は、237 を心に結ぶものを赤と呼ぶ
function isRedX (target) {
return IMAGE_X === xImageOf(target);
}

// ミドリさんはリンゴや血液、アセロラをみると 114 が思い浮かぶ
function yImageOf(target) {
if (['apple', 'blood', 'acelora'].includes(target)) {
return IMAGE_Y;
} else {
return null;
}
}

// ミドリさんは、114を心に結ぶものを赤と呼ぶ
function isRedY (target) {
return IMAGE_Y === yImageOf(target);
}

見解の一致: 僕はミドリさんに言う。「アセロラの実は赤いよね」。ミドリさんは答える。「そうだね。赤いね。」僕はさらに続ける。「リンゴとアセロラの実は同じ色だよね」。ミドリさん「そうだね。同じ色だね」。僕は確信をもって続ける「赤っていうのは光子の持つ物理的な状態を表し、その周波数が X ~ Y Hz であることを指すんだよね。」ミドリさんはいう「そう定義してくれても構わないよ」。僕はミドリさんに自信をもってこういう「僕らは 赤 という言葉で同じ意味を共有しているね」ミドリさんはいう「そうだといいけどね」

// 赤についての言明は完全に一致する

assert(isRedX('acelora') && isRedY('acelora')); // -> OK
assert(['acelora', 'apple'].every(isRedX) && ['acelora', 'apple'].every(isRedY));
// けれども、赤の意味=イメージ は一致しない
assert(IMAGE_X !== IMAGE_Y);


その後の展開

分析哲学者の多くは「意味が私秘的である」ことを批判する。彼らは、意味の存在場所がそれぞれの人の心であることに我慢がならないようだ。曰く「意味の存在場所は心ではない。意味とはもっと公共的・客観的なものなのだ」と。具体的にどのような説であるかは、次回(があれば)コードに落としてみよう


参考

『分析哲学講義』青山拓央 ちくま新書 講義2