我々(人類)は、名付けと名前解釈の問題で悩み続ける宿命なのだろう。我々は、直示(名付けによらない直接指示)コミュニケーションが特別な(同じ絵を見ていて、指差し可能とかの)場合しか出来ないから、名付け・名指しを避けられない。名指しによらない直示コミュニケーションが出来る宇宙人達は、名前の悩みから開放されているのだろう、羨ましい。
後から思い出したが、伝統的記法でも、“関数そのもの”と“引数を渡した結果である関数値”を区別する書き方はあるにはあった。
- 伝統的
- 関数 : $`f(x)`$
- 関数値 : $`f(x)|_{x=a}`$ または $`\left[f(x)\right]_{x = a}`$
- 現代的
- 関数 : $`f`$
- 関数値 : $`f(a)`$
伝統的記法と現代的記法の折り合いを付ける手段がラムダ記法で、チャーチ(ラムダ記法の発明者)の功績は計り知れない。
次の状況を考える。
なかのヒトである直美と一郎は、それぞれの趣味により名付けをしている。
- 直美は、入力ポートに $`x`$ 、出力ポートに $`y`$ と名付けた。
- 一郎は、入力ポートに $`\xi`$ 、出力ポートに $`\beta`$ と名付けた。
彼女・彼のネーミングの情報を伝えるには、伝統的記法が便利。
- 直美のネーミング: $`y = f(x)`$
- 一郎のネーミング: $`\beta = f(\xi)`$
そとの人である明〈あきら〉は、ポートネーミングに興味がないし、直美や一郎が見えてない。現代的価値観・判断基準を持つ明〈あきら〉から見れば、4つの関数はすべて同じ。このことは次のように表現できる。
$`\quad f = f(\text{-}) = \lambda x. f(x) = \lambda \xi . f(\xi)`$
型もちゃんと書くなら:
$`\quad \lambda x. f(x) = \lambda x\in X.(\, f(x)\; \in Y\,)`$
ラムダ記法により:
- 直美が付けた名前 $`x`$ は、明〈あきら〉からは原則見えない〈不可視〉。見えたとしても、明〈あきら〉は「どうでもいい」と思っている。したがって、明〈あきら〉にとっては、直美のネーミングと一郎のネーミングとの区別はない。
- 直美と一郎が出力ポートに付けた名前は、ラムダ記法にも反映されない。明〈あきら〉は名前に興味がないので、「どうでもいい」と思っている。
今の状況では、明〈あきら〉、直美、一郎は境界線で隔離されている。が、境界線がなくなったり、境界線を越えて名前が漏洩〈リーク〉したりすると、トラブルが起きる。
名前はトラブルのもとであるが、なにかしら名前を付けないとワイヤリングの記述ができない。かくして我々は、名付けと名前解釈の問題で悩み続ける。