変数(variable)の本性

 デカルトは自然研究での新しいきっかけを数多く生み出しましたが、その一つが「変数」です。「変数」とは数が変化するのか、変化を数で表現したのか、いずれでもないのか、考え始めると、実に曖昧です。とはいえ、変数が導入されることによって、数学は自然の変化を表現する言語として強力な能力を獲得し、自然を理解し、その変化を記述するために不可欠の形式的装置になりました。そこで、変数概念がその後さらに拡張されていった歴史的な実情を踏まえ、簡単に振り返りながら、変数の本性を異なる文脈(数学、自然言語、論理学、コンピューター言語)で浮き彫りにしてみましょう。

解析学代数学の変数>

 微積分に代表される解析学での変数は、未知あるいは不定の数や対象を表す記号のことで、学校で習うのは実数変数です。また、代数学の文脈では不定元(indeterminate)の意味で「変数」を使うことがしばしばあります。方程式で特別な値をとることがあらかじめ期待されている場合、未知数とも呼ばれます。通常は定数(constant)と対になっていて、値が変化するものだと思われています。変数が現れる文脈ごとにその変数の変域あるいは定義域などと呼ばれる、変数が値としてとりうるもの(その変数への代入が許されるもの)の範囲を示す集合が決まっています。変域の中から代表として 「無作為に一つ」 選び出した数、すなわち変域内の 「任意の値(任意定数)」 として変数を捉えることもできます。

 学校ではこのように習ったことを思い出す人が多いと思いますが、変数が導入されることによって「関数(function)」が生まれたことからもわかるように、「変数(variable)」という語の使用は関数にまで拡大しています。その典型例が「確率変数」です。「確率変数(random variable)」は確率に関する関数です。確率変数とはランダムな実験によって得られる全ての結果を指す関数です。では、どの集合からどの集合への関数かというと標本空間から実数の空間への関数です。わかりにくい集合である「標本空間」からよくわかっている「実数空間」への関数(=写像)が「確率変数」なのです。

自然言語の変数>

 自然言語の文法に「変数」登場しませんが、変数と同じ役割をもつのが「代名詞」です。代名詞は、名詞または名詞句の代わりに用いられる語です。通常は名詞とは異なりますが、名詞の一種とされることもあります。例えば英語のyou, who, thisなどがそうです。代名詞は人称代名詞、指示代名詞、疑問代名詞、関係代名詞、再帰代名詞、相互代名詞、不定代名詞、否定代名詞などに分類されます。日本語の代名詞は自立語で、活用しません。

 人称代名詞は話し手、受け手、および談話の中で指定された人や物を指す代名詞です。一般に、話し手を指す一人称、受け手を指す二人称、それ以外の人、物を指す三人称に分けられます。人称代名詞は概して時代によって激しく変化します。かつて上流で用いられた日本語の「貴様」は、口頭語に移行するとともに尊敬の意味が薄れ、一人称の「手前」が音変化とともに二人称に転じたなどがその例です。体系上の人称代名詞も例外ではなく、「われ」「なれ」は既に共通語の口語としては廃れ、元来性別と関係なかった「かれ」は男性に限定されるとともに恋人(男性)を指すようにも使われています。

 指示代名詞は現場にあるものや記憶の中のものを指して用いる代名詞です。近称・遠称を使い分ける言語(英語のthis/that)や、近称・中称・遠称と呼ばれる三列を使い分ける言語(日本語のコ・ソ・ア)があります。

*運動変化を十分に表現しようとすれば、代名詞「これ」を「あれ」に変えるだけでは全く不十分です。そのためには、数を使って変化を追いかける仕方によって表現する必要があります。変化を追いかけながら表現するために、順に並んだ数を使おうという訳です。その数として実数を使うと、「連続的な変化」として運動を表現することができます。こうして、素朴な代名詞に対して、連続変化を実数によって表現し、連続的な運動を理解することができるようになりました。ただ、素朴な代名詞と変数が何を指しているかとなれば、いずれも(具体的に指で)指すことができるものです。

<論理学の文脈での変数>

 アリストテレス以来の形式論理学(formal logic)は19世紀末にフレーゲらによって数学の言語として述語論理学(predicate logic)に生まれ変わりますが、その核心にあるのが変項(変数のこと)と述語記号。二つの項(term)が「である」で結ばれた自然言語の文を基本にした形式論理学と違って、変項xと述語Fの組み合わせF(x)(xFである)を基本の形式にしたのが述語論理学です。

 個体変項(individual variable)とも呼ばれるように、x自然言語の代名詞、数学の変数に対応しています。個体変項は世界の中の個々の対象、数学世界の個々の数や図形を指しています。この指示対象は伝統的に「個物(individual)」と呼ばれてきたものです。

*変項や変数は、動き回るもの、未知で不定のものというイメージで捉えることができますが、それはあくまで比喩的な理解で、指示代名詞と基本的に同じ役割をもつものです。また、定数や定項は固有名詞に対応し、それによって指示される特定の対象を指すということになります。

<コンピューター言語の変数>

 2x + 3の項に登場する x は通常変数と呼ばれています。変数とは、何かを入れておく箱のようなものと考えられています。変数という箱に対して、私たちができるのは次の三つのことです。

・変数を作る(変数宣言)

・値を入れる(代入)

・値を見る(参照)

 Java言語で変数を作る(変数宣言)ことを「変数を宣言する」、あるいは「変数を定義する」と言います。書き方は「int x;」。これによって、xという名前の変数が1個できることになります。

 次に「値を入れる(代入)」ですが、「x = 4;」とプログラムに書けば、変数xに4という値を代入したことになります。「x = 1 + 2×3;」とプログラムに書けば、変数xには右辺の計算結果が代入されることになります。計算結果は7ですから、変数xには7という値が入ることになります。

 最後の「値を見る(参照)」ですが、変数の値を見ることを「変数を参照する」と言います。変数を参照するのは簡単です。

 変数は宣言と同時に値を定めることもできます。これは数が最初から入った箱を作るようなものです。この場合は代入とは呼ばず、「初期化」と呼び、次のように書きます。「int x = 4;」これで、4という値で初期化された int 型の変数xが宣言されたことになります。「int x;」とだけ書かれた場合には、変数xは未定義の値になります。

 

 このように見てくると、変数が使われる文脈は随分と多様化し、それぞれの文脈に応じて有意味な使い方が開発されてきたことがわかります。数学が自然言語に代わって自然の変化を表現し、説明や予測に適した装置として使われている理由の一つが変数にあることがこれまでの説明から納得できる筈です。

**2019年6月19日の「変数(variable)とは何か」を加筆修正したものです。