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, :EXTERNALfind-symbol (symbol-name :nil) "KEYWORD") => :NIL, :EXTERNAL (
なし。
intern
, import
, export
, use-package
, unintern
, unexport
, unuse-package
なし。
find-symbol
は操作としてはintern
と同等ですが、 新しいシンボルを決して生成しない所が違っています。