% 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
なし。