関数と名前と主観位置の問題

我々(人類)は、名付けと名前解釈の問題で悩み続ける宿命なのだろう。我々は、直示(名付けによらない直接指示)コミュニケーションが特別な(同じ絵を見ていて、指差し可能とかの)場合しか出来ないから、名付け・名指しを避けられない。名指しによらない直示コミュニケーションが出来る宇宙人達は、名前の悩みから開放されているのだろう、羨ましい。

後から思い出したが、伝統的記法でも、“関数そのもの”と“引数を渡した結果である関数値”を区別する書き方はあるにはあった。

  • 伝統的
    • 関数 : $`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\,)`$

ラムダ記法により:

  1. 直美が付けた名前 $`x`$ は、明〈あきら〉からは原則見えない〈不可視〉。見えたとしても、明〈あきら〉は「どうでもいい」と思っている。したがって、明〈あきら〉にとっては、直美のネーミングと一郎のネーミングとの区別はない。
  2. 直美と一郎が出力ポートに付けた名前は、ラムダ記法にも反映されない。明〈あきら〉は名前に興味がないので、「どうでもいい」と思っている。

今の状況では、明〈あきら〉、直美、一郎は境界線で隔離されている。が、境界線がなくなったり、境界線を越えて名前が漏洩〈リーク〉したりすると、トラブルが起きる。

名前はトラブルのもとであるが、なにかしら名前を付けないとワイヤリングの記述ができない。かくして我々は、名付けと名前解釈の問題で悩み続ける。