シンボル


*apropos-no-regexp*

type: Variable
package: editor
file: help.l
non-nil に設定すると、apropos 実行時に、正規表現のメタ文字はエスケープさ
れます。デフォルトは nil です。

seealso: apropos
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

*gensym-counter*

type: Variable
package: lisp
file: evalmacs.l
gensym で作られるシンボルの名前につく数字です。
使われるたびにインクリメントされます。

seealso: gensym
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

apropos

type: Function
arguments: apropos STRING &optional PRINT-KEY PRED
package: editor
file: help.l
指定した正規表現に一致するシンボルの一覧を表示します。

  STRING    : 検索する文字列
  PRINT-KEY : バインドされているキーを表示するかどうか
        non-nil : 表示する
        nil     : 表示しない
  PRED      : ???

seealso: *apropos-no-regexp*
seealso: command-apropos
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

boundp

type: Function
arguments: boundp SYMBOL
package: lisp
file: builtin.l
シンボルに値が設定されているかどうかを返します。

使用例:
  (boundp 'test)          => nil
  (defvar test "string")  => test
  (boundp 'test)          => t

seealso: fboundp
seealso: macro-function
seealso: makunbound
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

command-apropos

type: Function
arguments: command-apropos STRING
package: editor
file: help.l
指定した正規表現に一致する interactive 宣言されている関数の一覧を表示し
ます。バインドされたキーがあれば、同時に表示します。

seealso: apropos
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

copy-symbol

type: Function
arguments: copy-symbol SYMBOL &optional COPY-PROPS
package: lisp
file: builtin.l
同じ名前を持つuninternedなSYMBOLのコピーを返します。
COPY-PROPSがnon-nilなら、初期定義値、プロパティリストもコピーされます。

seealso: uninterned
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

default-value

type: Function
arguments: default-value SYMBOL
package: lisp
file: builtin.l
シンボルのデフォルトの値を返します。
シンボルがバッファローカルでないならば、symbol-valueと同じ値を返します。
シンボルがバッファローカルの時にデフォルトの値を持たない場合には、エラー
になります。デフォルトの値はsetq-defaultで指定します。

使用例:
  ;;; シンボルがデフォルトの値を持たない場合
  (make-local-variable 'foo)    => t
  (setq foo 123)                => 123
  (default-value 'foo)          => 変数が定義されていません: foo

  ;;; バッファローカルなシンボルの場合
  (defvar-local bar 234)        => bar
  (setq bar 345)                => 345
  (default-value 'bar)          => 234

seealso: symbol-value
seealso: setq-default
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

describe-function

type: Function
arguments: describe-function SYMBOL
package: editor
file: help.l
指定された関数の引数と docstring を表示します。

seealso: describe-variable
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

describe-variable

type: Function
arguments: describe-variable SYMBOL
package: editor
file: help.l
指定された変数の現在の値、種類(constant or special)および docstring を表
示します。

seealso: describe-function
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

fboundp

type: Function
arguments: fboundp SYMBOL
package: lisp
file: builtin.l
シンボルに関数が定義されているかどうかを返します。

使用例:
  (fboundp 'car)
  => t
  (fboundp 't)
  => nil

seealso: boundp
seealso: fmakunbound
seealso: macro-function
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

find-all-symbols

type: Function
arguments: find-all-symbols NAME
package: lisp
file: package.l
印字名が NAME であるようなシンボルを各パッケージから探します。
戻り値は見つかったシンボルのリストです。

使用例:
  (find-all-symbols "y")
  => (editor::y system::y lisp::y winapi::y)

  (find-all-symbols "system-root")
  => (system:system-root)

  (find-all-symbols "test")
  => (editor::test test :test lisp::test)

seealso: find-symbol
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

gensym

type: Function
arguments: gensym &optional X
package: lisp
file: evalmacs.l
uninterned なシンボルを生成します。印字名は G の後に *gensym-counter* の
値をつなげたものです。

引数 X を指定すると、
  X が整数のときは *gensym-counter* の代わりに X の値が使われます。
  X が文字列のときは "G" の代わりに X の値が使われます。

seealso: *gensym-counter*
seealso: make-symbol
seealso: unintern
seealso: uninterned
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

gentemp

type: Function
arguments: gentemp &optional (PREFIX t) (PACKAGE *package*)
package: lisp
file: evalmacs.l
intern されたシンボルを生成します
PACKAGE に intern された PREFIX と内部カウンタをつなげたシンボルを返します

必ず衝突しないシンボルを生成します。

seealso: gensym
seealso: intern
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

get

type: Function
arguments: get SYMBOL INDICATOR &optional DEFAULT
package: lisp
file: builtin.l
シンボルのプロパティを返します。

  SYMBOL    : プロパティを返すシンボル
  INDICATOR : プロパティのインジケータ

使用例:
  ;;; シンボルにプロパティを設定してみる。
  (get 'clyde 'species)                         => nil 
  (setf (get 'clyde 'species) 'elephant)        => elephant 
  (get 'clyde 'species)                         => elephant

  ;;; 関数の説明を取得してみる。
  (defun foo (x) "increment" (1+ x))            => foo
  (get 'foo 'lisp::function-documentation)      => "increment"

seealso: symbol-plist
seealso: remprop
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

get-properties

type: Function
arguments: get-properties PLACE INDICATOR-LIST
package: lisp
file: builtin.l
2番目の引数がリストになっているgetfです。
一致すると多値で値を返します。

使用例:
  ;;; get-propertiesで値を取得してみる。
  (get-properties '(ind1 10 ind2 20 ind3 30) '(ind2))
  => ind2
     20
     (ind2 20 ind3 30)

seealso: getf
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

getf

type: Function
arguments: getf PLACE INDICATOR &optional DEFAULT
package: lisp
file: builtin.l
インジケータと値のリストから、インジケータに一致する値を取得します。

  (get x y) == (getf (symbol-plist x) y)

使用例:
  ;;; 実用性は無いけれどgetfを使って取得してみる。
  (getf '(ind1 10 ind2 20 ind3 30) 'ind2)
  => 20

seealso: get-properties
seealso: symbol-plist
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

lisp-complete-symbol

type: Function
arguments: lisp-complete-symbol
package: editor
file: lispmode.l
Lisp のシンボル名を補完します。[ESC TAB]

seealso: *lisp-popup-completion-list*
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

lisp-indent-hook

type: Misc
package: editor
シンボルにプロパティを設定することで lisp-indent-line でのインデント量を制御します。

  数値 n   : n 番目以降の引数を *lisp-body-indent* だけ、
             それより前の引数を (* *lisp-body-indent* 2) だけインデント
  nil      : 通常のインデント
             ただし1番目の引数のインデント量は *lisp-indent-offset* に従う
  それ以外 : すべての引数を *lisp-body-indention* だけインデント

使用例:
  ;;; $XYZZY/lisp/lispmode.l から
  (setf (get 'lambda 'lisp-indent-hook) 'defun)
  (setf (get 'interactive 'lisp-indent-hook) 1)
  (setf (get 'progn 'lisp-indent-hook) 0)
  (setf (get 'if 'lisp-indent-hook) 2)
  (setf (get 'let 'lisp-indent-hook) 1)
  (setf (get 'let* 'lisp-indent-hook) 1)

[ Intro | 目次 | 索引 | 目的別 | シンボル ]

make-symbol

type: Function
arguments: make-symbol PRINT-NAME
package: lisp
file: builtin.l
印字名がPRINT-NAMEであるuninternedなシンボルを返します。

参考:
  evalmacs.l

seealso: intern
seealso: gensym
seealso: symbol-package
seealso: uninterned
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

remprop

type: Function
arguments: remprop SYMBOL INDICATOR
package: lisp
file: builtin.l
シンボルのプロパティを削除します。

  SYMBOL    : プロパティを返すシンボル
  INDICATOR : プロパティのインジゲーター

使用例:
  ;;; 関数の説明を削除してみる。
  (defun foo (x) "increment" (1+ x))            => foo
  (get 'foo 'lisp::function-documentation)      => "increment"
  (remprop 'foo 'lisp::function-documentation)  => t
  (get 'foo 'lisp::function-documentation)      => nil

seealso: get
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

symbol-name

type: Function
arguments: symbol-name SYMBOL
package: lisp
file: builtin.l
シンボルの名前を印字用の文字列として返します。

使用例:
  ;;; シンボルxyzzyを文字列にしてみる。
  (symbol-name 'xyzzy)
  => "xyzzy"

seealso: intern
seealso: string
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

symbol-package

type: Function
arguments: symbol-package SYMBOL
package: lisp
file: builtin.l
シンボルが属するパッケージを返します。
make-symbol とか gensym で生成されたシンボルはどのパッケージにも属しません。

使用例:
  ;;; uninternedなシンボルとそうでないシンボルを作ってみる。
  (setq foo 2)                          => foo
  (symbol-package 'foo)                 => #<package: user>
  
  (setq bar (make-symbol "bar"))        => #:bar
  (set bar 3)                           => 3
  (symbol-value bar)                    => 3
  (symbol-package bar)                  => nil

seealso: make-symbol
seealso: gensym
seealso: intern
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

symbol-plist

type: Function
arguments: symbol-plist SYMBOL
package: lisp
file: builtin.l
シンボルのプロパティリストを返す。

使用例:
  ;;; シンボルのプロパティリストを見てみる。
  (symbol-plist 'xyzzy)         => nil
  (setf (get 'xyzzy 'foo) 1)    => 1
  (symbol-plist 'xyzzy)         => (foo 1)

seealso: get
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

symbol-value

type: Function
arguments: symbol-value SYMBOL
package: lisp
file: builtin.l
シンボルが束縛されている値を返します。
局所変数の値は参照できません。

  SYMBOL : 値を返すシンボル

使用例:
  ;;; foo というシンボルの値を返してみる
  (set 'foo 3)          => 3
  (symbol-value 'foo)   => 3
  foo                   => 3
  ;;; 局所変数は参照できない
  (let ((foo 1))
    (symbol-value 'foo)) => 3

seealso: symbol-function
seealso: default-value
seealso: buffer-local-value
[ Intro | 目次 | 索引 | 目的別 | シンボル ]

型一覧

type: Misc
型は綺麗に階層構造を成す訳ではないのですが、subtypepでロジックに組み込ま
れているところから、嘘にならない程度に階層化したものです。[]付きの物は二
重に出現しています。

  list                                  リスト
  ├null                                ヌル
  └cons                                コンス
  atom                                  アトム
  ├number                              数値
  │├real                              実数
  ││├rational                        有理数
  │││├ratio                         分数
  │││└integer                       整数
  │││  └bignum                      −
  ││└float                           浮動小数点数
  ││  ├short-float                   小精度浮動小数点数
  ││  ├single-float                  単精度浮動小数点数
  ││  ├double-float                  倍精度浮動小数点数
  ││  └long-float                    長精度浮動小数点数
  │└complex                           複素数
  ├symbol                              シンボル
  │├[null]                            −
  │└keyword                           キーワード
  ├character                           文字
  │├base-character                    −
  ││└standard-char                   標準文字
  │└extended-character                −
  ├stream                              ストリーム
  │├two-way-stream                    双方向ストリーム
  │├echo-stream                       −
  │├broadcast-stream                  −
  │├file-stream                       ファイルストリーム
  │├synonym-stream                    文字列ストリーム
  │├string-stream                     −
  │└concatenated-stream               −
  ├sequence                            シーケンス
  │├[list]                            −
  │└[vector]                          −
  └array                               配列
    ├simple-array                      単純配列
    │└simple-string                   単純文字列
    └vector                            ベクタ
      ├simple-vector                   単純ベクタ
      └string                          文字列
        └[simple-string]               −

使用例:
  ;;; listはsequenceで、sequenceはatomだけど、listはatomではない。
  (subtypep 'list 'sequence)    => t
  (subtypep 'sequence 'atom)    => t
  (subtypep 'list 'atom)        => nil

参考:
  typespec.l

seealso: deftype
seealso: subtypep
seealso: type-of
seealso: typep
[ Intro | 目次 | 索引 | 目的別 | シンボル ]