English version
λ計算の続きである.何らか入力に対してその二倍を出力するという函数をλ式で書いてみる.
λ x . 2 x
前回のブログの図1 を見るとこの函数は入力が x で出力は 2x であるので,これは入力を二倍する函数である.
しかし本当はこれは正確ではない.ここにはごまかしがある.函数とは何かを考えるのに,既にかけ算という函数は何なのか知っている.何を考える時にはもっと基本となる仮定から始めなくてはいけない.それにここでは数まで何かわかっていることになっているが,λ計算ではこのような数は何かについては規定していないので使ってはいけないのである.機械に計算をさせたいというのがλ計算を学ぶ私の動機の一つであった.人間には易しいことであっても,機械には難しいことは多数ある.たとえばかけ算などはまだ定義されていない.
しかし,我々には既にチャーチ数がある.後でチャーチ数を使う方法に戻ることにして,まずは函数についてもう少し話をすすめてみよう.
この函数(λx.2x)は,私が習った方法で書けば,f(x) := 2x であるが, g(x):= 2x でも良いわけで,ここでの f と g とかいう名前は役所の順番待ちの番号札の番号みたいなものである.(ここで := というふうに '=' にコロン':' がついているのは定義するという意味である)名前は通常非常に重要なものであるけれども,それが本質かというとそうではないこともある.λ式の書き方では,λを函数と考えれば, λx. 2 x は ``x を引数にとる函数で,それは 2 x'' というふうに読んでも良いだろう.こうすると f とか g という名前を書く必要がない.
函数をλと呼ぶのには多分名前が本質ではないことも関係している.函数の正体が重要なので,別に a でも b でもλでも良いことを示したいのだ.函数とは何かということを真面目に考える人達がいて,その人達は「名前は何でもいいのだ,本体がいったい何なのかをもっと研究したい.」と思ったのだろうと思う.