作者: Bruce.
日時: 2009/3/21(02:26)
Bruce.です。


機械伯爵 さんは書きました (2009/03/21 0:37):

>  評価される前は全てシンボルで、クォートされると評価されないからシンボル
> そのまま、という認識だったんですけど。

いやまあそうだとしても、クォートついたのがシンボルというのは拡大解釈の
しすぎじゃないかと。

> 『必要に応じ,Common Lispではシンボルをその表現する値に対応させたり,
> その表現する関数に対応させる関数が使える.関数symbol-valueはシンボル
> を引数に取り,対応するスペシャル変数の値を返す:
> 
>> (symbol-value 'double)
> 2
> 』
> (On Lisp (http://www.komaba.utmc.or.jp/~flatline/onlispjhtml/functions.html))
> 
> みたいな文章があるから、'doubleとかを『シンボル』と言っていいのかな、と。
> 
>  もちろん上の場合、ホントはdoubleがシンボルで、それを『評価しない』って
> コトだけだろうとは思うんですが。

どう表現すべきなのか決まってるのかはわかりませんが、一応 Common Lisp な
xyzzy でしらべてみると、


make-symbol
Type: Function
Arguments: make-symbol PRINT-NAME
Package: lisp
File: builtin.l

印字名がPRINT-NAMEであるuninternedなシンボルを返します。


(make-symbol "hoge")
#:hoge

とか、ぐぐるとこんなのが。

シンボルとパッケージ
http://www.fireproject.jp/feature/common-lisp/details/symbol-package.html


シンボルは以下から構成される.

    * シンボル名
    * パッケージ
    * 変数値
    * 関数
    * 属性リスト

シンボルは簡単に作成できて,見ためも単なる文字列のように見えるが,
内部では構造を持っていて,いろいろな情報を持っている.

-- 
木村浩一
  I thought what I'd do was, I'd pretend I was one of those deaf-mutes or should I?
  mail kbk [at] kt.rim.or.jp
        web  www.kt.rim.or.jp/~kbk/zakkicho/
             homepage3.nifty.com/farstar/