シンボルと変数の違い
変数は参照先は確定するので識別子になり得る?
ただ、スコープの確定を受けてから出ないと、どの実体を示すかは判定できない。
文字列を構成する文字がすべて等しいか..
文字列(名前)からシンボルを生成する処理のことを、多くの言語では intern と呼びますが、その内部では一意性を維持するために文字列からそれに対応するテーブル(辞書)を作ってそれを引くという処理を行っています。このテーブルのことをシンボルテーブルと呼ぶのです。 辞書を作って、文字列から等しいかをチェックしてその辞書のテーブルに乗っけるイメージで、internの "しょっ引く"というイメージであてられた形?
----------------------------------------------------
まずは、全体として、変数をどうイメージするかという議論がある。
行き着く先のひとつは、孫引用だけど、
プログラムを書く人が、認知負荷を上げずに、メモリー上の実体(entity)?を操作できればよい?
個人の認知の仕方の特性があるので、最大公約数がどれかは、、、 で、個人としては、
cとか書けないので、、と思ってきたけど、
goを少し触り始めて、symbol...となっている。
Symbolは、メモリの番地を直接記号化したもので、memory位置と1対1対応するものイメージだけだけど、、 そういえば、なぜ、シンボリックリンクというのだろう?
ハードリンクは、ファイルの中身の実体への参照(リンク)で、そのハードリンクは実体そのもの。ハードリンクを消せば、(元の)ファイルも消える。 シンボリックリンクsymlinkは、元のファイル名への参照。シンボル(ここでは元のファイルの名前?)への参照を作るというイメージだろうか? 名を捨てて実を残す、人間の認知として、実体と外界からの呼ばれ方を分けて考えるというのは一般的。 #ポエム