数学者にとって、 $$x = x + 1$$という一行は解のない方程式である。両辺から $x$ をひくと $0 = 1$ が残る。プログラマーにとっては、もっともよく出てくる行のひとつで、「$x$ の値をとり、一を足し、結果を $x$ にしまえ」という意味である。同じ記号が、二つの共同体で正反対の仕事をしている。あちらでは等しいことを主張し、こちらでは代入を命じるのである。 Fortran が等号を選んだ 張本人は Fortran である。広く使われた最初の高水準プログラミング言語で、ジョン・バッカスの率いるチームが IBM で作り、1957 年に公開された。プログラムはパンチカードに打ちこまれ、一枚に一文で、カード穿孔機のキーボードには記号が少なかった。「$N$ に値 $27$ をしまえ」と言うために、Fortran は技術者の式のように N=27 と書いた。 Fortran の文が打たれたパンチカード。二枚めのカードの N=27 は、N が 27 に等しいと主張しているのではない。N に 27 をしまえと命じているのである。Tangopaso · ウィキメディア・コモンズ · パブリックドメイン この選択は実用的なもので、そのまま定着した。しかし、プログラミングを数学として考える人々は落ち着かなかった。1958 年から 1960 年にかけて国際委員会が作った Algol 言語は、代入には別の記号 := を使い、= は比較のためにとっておいた。スイスのニクラウス・ヴィルトは Pascal(1970)で := を引きつぎ、ドナルド・クヌースは『The Art of Computer Programming』で代入を矢印 $x \leftarrow x + 1$ で書く。アイバーソンの APL も矢印を使い、統計言語 R はそれを <- として受けついだ。