Function SHADOWING-IMPORT

UP


Function SHADOWING-IMPORT

Function SHADOWING-IMPORT

構文

shadowing-import symbols &optional package => t

引数と戻り値

symbols - シンボルのリストの指定子
package - パッケージ指定子。デフォルトは現在のパッケージ。

定義

shadowing-importimportと似ていますが、 もしimportするシンボルが package内ですでにアクセス可能ないくつかのシンボルに隠蔽されるようなときでも エラーを通知しません。

shadowing-importは、 この操作によって他の同じ名前のシンボルが隠蔽されるかどうかに関わらず、 各symbolspackageへ内部シンボルとして追加します。 もしpackageに同じ名前の違うシンボルが現れていたときは、 そのシンボルは最初にpackageからuninternします。 新しいシンボルは、packageshadowingシンボルリストに追加されます。

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は、パッケージの一貫したルールが その変更によって保持されないような方法で、 パッケージシステムの状態を変更します。

packageshadowingシンボルリストは変更されます。

影響

パッケージシステムの現在の状態。

例外

なし。

参考

import, unintern, package-shadowing-symbols

備考

なし。


TOP, Github