English version
函数を左結合で評価する,というような定義はスポーツのルールのようなものである.バスケットボールのルールではボールをドリブルしなくてはいけないが,なぜそうなのかというのはルールだからである.野球でボールをドリブルしても意味はなく,サッカーで手を使ったら反則である.同じボールを使ったゲームなのに何故かと聞かれてもルールであるから仕方がない.数学にはそういう一面がある.「何故左結合なのか? 」「定義だから.(ルールだから)」
この数学のルールを何か不変で唯一な真実というふうにどこかで教えられてしまうと不幸が初まる.1+1=2 というものを不変で唯一な真実だと教えられると後で数学を理解できない.たとえば,1+1=1 という数学で多くの計算機は動いている.多くの計算機は二進法であり,0 と 1 しかないので,一桁の計算では 2 というものがないからである.もちろん,1+1=2 は間違っているわけではないし,非常に有用であるが,不変で唯一な真実ではない.定義された後にそれは達成される.
ただし,スポーツにしろ数学にしろ関心は似た所にある.「そういうルール/定義があったら面白いゲームになるか?」である.実はそのルールや定義そのものは何かというのはあんまり興味がない.むしろ,そのルールの下でのゲームが面白いのだ.
足し算というルールを作ったら,何か面白いものがそのルールから出てくるだろうか? 足し算とかけ算だけで作った世界ではどんなものだろうか? というようなことを考える.蛇足であるが足し算と定数倍のかけ算一回だけの数学は線形代数という.
人について考えると「その人が何をしたか」の方が,その人そのもの(体重,身長,外見,名前など)よりも興味深い場合が多い.数学でもルールそのものが面白いこともあるかもしれないが,「そのルールで何ができるか」が通常面白い.時々私も「なんでそんなルールがあるんだ.」ということがわからずに,数学が嫌いになることがある.しかし,それは多分ちょっとずれた考えなんだろうと思う.でも,これを教えてくれた先生はいなかったなあ.なんでだろうね,マービン?
マービン「そんなあたりまえのことを今更教えるわけがないでしょう.」
わかっている人にはあたりまえなので気がつかないのかもしれない.しかしあたりまえということには用心しないといけないと思う.
SUCC 函数をもう一度見てみよう.
SUCC := λn f x. f (n f x)
この書き方は,
SUCC := ((λn. λf). λx). f (n f x) .
の省略形である.``.'' から左は函数とわかっているので,3つのうち2つのλを省略しても意味が失なわわれることはない.もう少し詳しく言うと,カリー化に関係する.これは Haskell Curry に因んだ名前であるが,どうもカリーが最初に考えたのではないらしい(Moses Schoenfinkel と Gottlob Frege).カリー化とは,ある函数に対して,最初の変数を固定すると,残りの引数を使う函数を得る方法である.これによって複数の引数を持つ函数を単一の引数を持つ函数の組合せで書くことができる.つまり,単一の引数を持つ函数だけ考えれば残りはその組合せであるので,複数引数の函数は考えなくて良い.なんでこんなことを考えるのかというのは,複数引数の函数の方が単一引数函数よりも簡単であるからである.同じ効果が得られるのであれば,簡単なもののほうが理解しやすい.数学者の怠け癖はここにも見られる.