% Function SHADOWING-IMPORT
Function SHADOWING-IMPORT
shadowing-import symbols &optional package => t
symbols - シンボルのリストの指定子
package - パッケージ指定子。デフォルトは現在のパッケージ。
shadowing-importはimportと似ていますが、
もしimportするシンボルが
package内ですでにアクセス可能ないくつかのシンボルに隠蔽されるようなときでも
エラーを通知しません。
shadowing-importは、
この操作によって他の同じ名前のシンボルが隠蔽されるかどうかに関わらず、
各symbolsをpackageへ内部シンボルとして追加します。
もしpackageに同じ名前の違うシンボルが現れていたときは、
そのシンボルは最初にpackageからuninternします。
新しいシンボルは、packageのshadowingシンボルリストに追加されます。
shadowing-importは、
同じ名前を持つ既存の別のシンボルがアクセス可能かどうかという範囲で
名前の衝突チェックを行います。
もしそうなら、それは新しいシンボルにshadowされ、
もしそれがpackage内に存在しているならば、
それはuninternされなければならないことを意味します。
(in-package "COMMON-LISP-USER") => #<PACKAGE "COMMON-LISP-USER">
(setq sym (intern "CONFLICT")) => CONFLICT
(intern "CONFLICT" (make-package 'temp)) => TEMP::CONFLICT, NIL
(package-shadowing-symbols 'temp) => NIL
(shadowing-import sym 'temp) => T
(package-shadowing-symbols 'temp) => (CONFLICT)
shadowing-importは、パッケージの一貫したルールが
その変更によって保持されないような方法で、
パッケージシステムの状態を変更します。
packageのshadowingシンボルリストは変更されます。
パッケージシステムの現在の状態。
なし。
import,
unintern,
package-shadowing-symbols
なし。