機械す。
> > 評価される前は全てシンボルで、クォートされると評価されないからシンボル
> > そのまま、という認識だったんですけど。
>
> いやまあそうだとしても、クォートついたのがシンボルというのは拡大解釈の
> しすぎじゃないかと。
……う〜ん。
『Lisp('abc)やSmalltalk(#abc)やRuby(:abc)のように、シンボルの使える言語が
羨ましい。』
まぁ、上が私のブログの件の言葉なんですけど、後ろの二つとLispの書き方は
意味が違う、ということでしょうか。
※SmalltalkやRubyはシンボルそのものの書き方、Lispのはシンボルを定義するため
の書き方?
> シンボルとパッケージ
> http://www.fireproject.jp/feature/common-lisp/details/symbol-package.html
>
>
> シンボルは以下から構成される.
>
> * シンボル名
> * パッケージ
> * 変数値
> * 関数
> * 属性リスト
>
> シンボルは簡単に作成できて,見ためも単なる文字列のように見えるが,
> 内部では構造を持っていて,いろいろな情報を持っている.
『前節のとおり,シンボルは単なる名前ではなく実体を伴うオブジェクトである.
人間はシンボル名を通して,シンボルを単なる名前として認識できる.シンボルの
シンボル名はsymbol-nameによって参照できる.』
引用は同上。
ちょっとショックでした。
私がシンボルをクラスインスタンスで実装したのは「方法」であって、
シンボルって『書式/文法』だとばかり思ってたんですよね。
つまり『目に見えている(人間が扱うべきもの)』がシンボルだと。
シンボル(象徴/印章)がオブジェクト(モノ)って、なんか言葉として破綻
してるような……
勿論、コードの中で扱うわけですから、どんな形であれメモリ領域を伴った
実体が無ければならないわけですから、シンボルオブジェクト(?)の話が
どのように記録されてるか、って話ならわかるんですけどね。
シンボルという言葉を意識してからまだ日が浅いので、私自身が多分混乱
してるんだと思いますけど……難しいなぁ。
『またここから派生して、情報工学やソフトウェア工学で、データに含まれる
一塊の記号や、プログラミングで用いられる名前を指して用いられる。例えば
コンパイラはソースコードからオブジェクトコードを生成する際、機能的な
「実体」を構成する一連の機械語命令に加え、それを指す「シンボル」をも生
成する。これらのシンボルを用いて、リンカが複数のモジュールの間の関係を
構成する。』(Wikipedia 日本語版)
これは参考になるようなならないような……
/機械伯爵/