Function UNINTERN
unintern symbol &optional package => generalized-boolean
symbol - シンボル
package - パッケージ指定子。デフォルトは現在のパッケージ。
generalized-boolean - generalized-boolean
uninternは、packageからsymbolを取り除きます。 もしsymbolがpackageに存在するとき、 それはpackageから取り除かれ、 packageのshadowingシンボルリストに存在するなら それも削除されます。 もしpackageがsymbolのホームパッケージであったときは、 symbolはホームパッケージを持たない状態になります。 symbolは継承によってpackageからアクセスし続けることができるかもしれません。
uninternの使用すると、 シンボルが記録されているホームパッケージを持たなくなりますが、 しかし実際にはいくつかのパッケージからはアクセスできます。 Common Lispはこのような病的なケースをチェックしないので、 そのようなシンボルは常に#:が先頭に印刷されます。
もしsymbolが取り除かれたらuninternはtrueを返却し、 それ以外の場合はnilを返却します。
(in-package "COMMON-LISP-USER") =>  #<PACKAGE "COMMON-LISP-USER">
(setq temps-unpack (intern "UNPACK" (make-package 'temp))) =>  TEMP::UNPACK 
(unintern temps-unpack 'temp) =>  T
(find-symbol "UNPACK" 'temp) =>  NIL, NIL 
temps-unpack =>  #:UNPACK uninternは、パッケージの一貫したルールが その変更によって保持されないような方法で、 パッケージシステムの状態を変更します。
パッケージシステムの現在の状態。
uninternにshadowingシンボルが与えられたとき、 以前shadowingによって解決していた名前の衝突が出てきます。 もしパッケージAが、パッケージBとCをuseしており、 Aにはshadowingシンボルxが、 BとCにはそれぞれ外部シンボルxがあるとき、 Aからshadowingシンボルxを取り除くような状況で、 もしb:xとc:xがそれぞれ別物であるときには 名前の衝突が表に出てきます。 このような状況では、uninternはエラーが発生します。
11.1. パッケージの説明
なし。