User Tools


Differences

This shows you the differences between two versions of the page.

Link to this comparison view

cl:functions:unexport [2019/09/14 05:00]
cl:functions:unexport [2019/09/20 16:00] (current)
Line 1: Line 1:
 +====== Function UNEXPORT ======
 +
 +====Syntax====
 +  * **unexport** //symbols// ''&​optional''​ //package// → **[[CL:​Constant Variables:​t]]**
 +
 +====Arguments and Values====
 +  * //symbols// - a //​[[CL:​Glossary:​designator]]//​ for a //​[[CL:​Glossary:​list]]//​ of //​[[CL:​Glossary:​symbol|symbols]]//​.
 +  * //package// - a //​[[CL:​Glossary:​package designator]]//​. The default is the //​[[CL:​Glossary:​current package]]//​.
 +
 +====Description====
 +**unexport** reverts external //symbols// in //package// to internal status; it undoes the effect of **[[CL:​Functions:​export]]**.
 +
 +**unexport** works only on //​[[CL:​Glossary:​symbol|symbols]]//​ //​[[CL:​Glossary:​present]]//​ in //​package//,​ switching them back to internal status. If **unexport** is given a //​[[CL:​Glossary:​symbol]]//​ that is already //​[[CL:​Glossary:​accessible]]//​ as an //​[[CL:​Glossary:​internal symbol]]// in //​package//,​ it does nothing.
 +
 +====Examples====
 +<​blockquote>​
 +([[CL:​Macros:​in-package]] "​COMMON-LISP-USER"​) → #<​PACKAGE "​COMMON-LISP-USER"> ​
 +([[CL:​Functions:​export]] ([[CL:​Functions:​intern]] "​CONTRABAND"​ ([[CL:​Functions:​make-package]] '​temp)) 'temp) → [[CL:​Constant Variables:​T]] ​
 +([[CL:​Functions:​find-symbol]] "​CONTRABAND"​) → [[CL:​Constant Variables:​NIL]],​ [[CL:​Constant Variables:​NIL]] ​
 +([[CL:​Functions:​use-package]] 'temp) → [[CL:​Constant Variables:​T]] ​
 +([[CL:​Functions:​find-symbol]] "​CONTRABAND"​) → CONTRABAND, :​INHERITED ​
 +(unexport '​contraband 'temp) → [[CL:​Constant Variables:​T]] ​
 +([[CL:​Functions:​find-symbol]] "​CONTRABAND"​) → [[CL:​Constant Variables:​NIL]],​ [[CL:​Constant Variables:​NIL]] ​
 +</​blockquote>​
 +
 +====Side Effects====
 +Package system is modified.
 +
 +====Affected By====
 +Current state of the package system.
 +
 +====Exceptional Situations====
 +If **unexport** is given a //​[[CL:​Glossary:​symbol]]//​ not //​[[CL:​Glossary:​accessible]]//​ in //package// at all, an error of type **[[CL:​Types:​package-error]]** is signaled.
 +
 +The consequences are undefined if //package// is the **''​keyword''​** //​[[CL:​Glossary:​package]]//​ or the **''​common-lisp''​** //​[[CL:​Glossary:​package]]//​.
 +
 +====See Also====
 +  * **[[CL:​Functions:​export|Function EXPORT]]**,
 +  * {\secref\PackageConcepts}
 +
 +====Notes====
 +None.
 +
 +\issue{PACKAGE-FUNCTION-CONSISTENCY:​MORE-PERMISSIVE}