% Function FIND-SYMBOL
Function FIND-SYMBOL
find-symbol string &optional package => symbol, status
string - 文字列
package - パッケージ指定子。デフォルトは現在のパッケージ。
symbol - packageでアクセス可能なシンボルか、nil
status - 次のどれか。:inherited, :external, :internal, nil
find-symbolは、package内のstringという名前のシンボルの
場所を返却します。
もしstringという名前のシンボルがpackage内で
直接のものかか継承によるものかのものが見つかったときは、
そのシンボルが最初の値として返却されます。
2番目の値は下記のようなものが返却されます。
:internal
:external
:inherited
use-packageを通して継承されており、
しかしpackage内には現れてないときもしpackageにはそのようなシンボルが無かったときは、
両方ともnilが返却されます。
(find-symbol "NEVER-BEFORE-USED") => NIL, NIL
(find-symbol "NEVER-BEFORE-USED") => NIL, NIL
(intern "NEVER-BEFORE-USED") => NEVER-BEFORE-USED, NIL
(intern "NEVER-BEFORE-USED") => NEVER-BEFORE-USED, :INTERNAL
(find-symbol "NEVER-BEFORE-USED") => NEVER-BEFORE-USED, :INTERNAL
(find-symbol "never-before-used") => NIL, NIL
(find-symbol "CAR" 'common-lisp-user) => CAR, :INHERITED
(find-symbol "CAR" 'common-lisp) => CAR, :EXTERNAL
(find-symbol "NIL" 'common-lisp-user) => NIL, :INHERITED
(find-symbol "NIL" 'common-lisp) => NIL, :EXTERNAL
(find-symbol "NIL" (prog1 (make-package "JUST-TESTING" :use '())
(intern "NIL" "JUST-TESTING")))
=> JUST-TESTING::NIL, :INTERNAL
(export 'just-testing::nil 'just-testing)
(find-symbol "NIL" 'just-testing) => JUST-TESTING:NIL, :EXTERNAL
(find-symbol "NIL" "KEYWORD")
=> NIL, NIL
OR=> :NIL, :EXTERNAL
(find-symbol (symbol-name :nil) "KEYWORD") => :NIL, :EXTERNAL
なし。
intern,
import,
export,
use-package,
unintern,
unexport,
unuse-package
なし。
find-symbolは操作としてはinternと同等ですが、
新しいシンボルを決して生成しない所が違っています。