minor changes
[clqr.git] / clqr-symbols-and-packages.tex
blob0a072b1de20a2a9f8abcfbca30c327cb55f6576a
1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 \section{Symbols and Packages}
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
4 \begin{LIST}{1cm}
6 \IT{\arrGOO{(\FU*{SYMBOLP} \VAR{ foo})\\
7 (\FU*{PACKAGEP} \VAR{ foo})}{\}}}
8 Return \retval{\T} if \VAR{foo} is of type \kwd{symbol} or
9 \kwd{package}, resp.
11 \IT{(\FU*{BOUNDP} \VAR{symbol})}
12 \retval{\T} if \VAR{symbol} is bound.
14 \IT{(\FU*{KEYWORDP} \VAR{foo})}
15 \retval{\T} if \VAR{foo} is a keyword.
17 \IT{\KWD*{:}\VAR{foo}}
18 Keyword, evaluates to \retval{:\VAR{foo}}
20 \IT{(\kwd*{T})}
21 Truth, or \V{*terminal-io*}.
23 \IT{\Goo{(\CNS*{NIL})\XOR{\kwd*{()}}}}
24 Falsehood, the empty list, \V{*standard-input*},
25 \V{*standard-output*}, or the global environment.
27 \IT{(\FU*{MAKE-PACKAGE} \VAR{name}
28 \orGOO{\kwd{:nicknames }(\OPn{\VAR{nick}})\DF{\NIL}\\
29 \kwd{:use }(\OPn{package})}{\}})}
30 Create \retval{package \VAR{name}}.
32 \IT{(\kwd*{DEFPACKAGE}\VAR{ foo}
33 \orGOO{\OPn{(\kwd{:use }\OPn{\VAR{bar}})}\\
34 \OPn{(\kwd{:nicknames }\OPn{\VAR{nick}})}\\
35 (\kwd{:documentation }\VAR{doc})\\
36 \OPn{(\kwd{:export }\OPn{\VAR{baz}})}\\
37 \OPn{(\kwd{:import-from }\VAR{p} \OPn{\VAR{n}})}\\
38 \OPn{(\kwd{:intern }\OPn{\VAR{n}})}\\
39 \OPn{(\kwd{:shadow}\XOR\Goo{\kwd{:shadowing-import-from}\VAR{ p}\OPn{\VAR{ jnk}}})}\\
40 (\kwd{:size }\VAR{int})\\
41 }{\}})}
42 Return \retval{defined package \VAR{foo}} which inherits symbols
43 exported by packages \VAR{bar} excluding \VAR{jnk}s and some
44 symbols. \VAR{n}s from package \VAR{p}; exports \VAR{baz}es.
46 \IT{(\FU*{RENAME-PACKAGE} \VAR{package} \Op{(\OPn{nick})\DF{\NIL}})}
47 Rename \VAR{package}. Return \retval{renamed package}.
49 \IT{(\kwd*{IN-PACKAGE }\VAR{foo})}
50 Make \retval{package \VAR{foo}} current.
52 \IT{(\FU*{USE-PACKAGE} (\OPn{\VAR{foo}})
53 \Op{\VAR{package}}\DF{\kwd{*package*}})}
54 Make exported symbols of packages \VAR{foo} available in
55 \VAR{package}. Return \retval{\T}.
57 \IT{(\FU*{UNUSE-PACKAGE} (\OPn{\VAR{foo}})
58 \Op{\VAR{package}}\DF{\kwd{*package*}})}
59 Remove packages \VAR{foo} from use-list of \VAR{package}.
61 \IT{(\FU*{DELETE-PACKAGE} \VAR{package})}
62 Delete \VAR{package}. Return \retval{\T} if successful.
64 \IT{\V*{*package*}} The current package.
66 \IT{(\FU*{LIST-ALL-PACKAGES})}
67 \retval{List of registered packages}.
69 \IT{(\FU*{PACKAGE-NAME} \VAR{package})}
70 \retval{Name of \VAR{package}}.
72 \IT{(\FU*{PACKAGE-NICKNAMES} \VAR{package})}
73 \retval{List of nicknames} of \VAR{package}.
75 \IT{(\FU*{FIND-PACKAGE} \Goo{\VAR{name}\XOR\VAR{package}})}
76 Return \retval{package object} with \VAR{name} (case-sensitive).
78 \IT{(\FU*{PACKAGE-USE-LIST} \VAR{package})}
79 \retval{List of other packeges} used by \VAR{package}.
81 \IT{(\FU*{PACKAGE-USED-BY-LIST} \VAR{package})}
82 \retval{List of other packages} using \VAR{package}.
84 \IT{(\FU*{MAKE-SYMBOL} \VAR{name})}
85 Make fresh, uninterned \retval{symbol \VAR{name}}.
87 \IT{(\FU*{COPY-SYMBOL} \VAR{symbol} \Op{\VAR{props}\DF{\NIL}})}
88 Return uninterned \retval{copy of \VAR{symbol}}. If \VAR{props} is
89 \T, the copy has the same value, function, and property list.
91 \IT{(\FU*{FIND-ALL-SYMBOLS} \VAR{string})}
92 Return \retval{list of symbols} with name \VAR{string} from all
93 registered packages.
95 \IT{(\FU*{SYMBOL-PACKAGE} \VAR{foo})}
96 Return the \retval{package \VAR{foo} came from}.
98 \IT{(\xorGOO{\FU*{INTERN}\\
99 \FU*{FIND-SYMBOL}}{\} \VAR{name} \Op{\VAR{package}}})}
100 Intern or find, resp., \retval{symbol \VAR{name}} in
101 \VAR{package}. Second return value is one of
102 \retvalii{\kwd{:internal}}, \retvalii{\kwd{:external}}, or
103 \retvalii{\kwd{:inherited}}.
105 \IT{(\kwd*{UNINTERN} \VAR{symbol} \Op{\VAR{package}})}
106 Remove \VAR{symbol} from \VAR{package}, return \retval{\T} on success.
108 \IT{(\xorGOO{\FU*{IMPORT}\\
109 \FU*{SHADOWING-IMPORT}}{\}}\RP{\VAR{symbol}}
110 \Op{\VAR{package}\DF{\kwd{*package*}}})}
111 Make \VAR{symbol}s internal to \VAR{package}. Return \retval{\T}. In
112 case of a name conflict, signal \kwd{package-error}, or shadow
113 the old symbol, resp.
115 \IT{(\FU*{SHADOW} \RP{\VAR{symbol}}
116 \Op{\VAR{package}\DF{\kwd{*package*}}})}
117 Add \VAR{symbol}s to shadowed list of \VAR{package}. Return \retval{\T}.
119 \IT{(\FU*{PACKAGE-SHADOWING-SYMBOLS} \VAR{package})}
120 \retval{List of shadowing symbols} of \VAR{package}.
122 \IT{(\FU*{EXPORT} \VAR{symbols} \Op{\VAR{package}\DF{\kwd{*package*}}})}
123 Make \VAR{symbols} external to \VAR{package}. Return \retval{\T}.
125 \IT{(\FU*{UNEXPORT} \VAR{symbols} \VAR{package})}
126 Revert \VAR{symbols} to internal status. Return \retval{\T}.
128 \IT{(\GFU*{DOCUMENTATION} \kwd{'}\VAR{foo}
129 \Goo{\kwd{variable}\XOR\kwd{function}\XOR
130 \kwd*{compiler-macro}\XOR
131 \kwd{method-combination}\XOR
132 \T\XOR\kwd{structure}
133 \XOR\kwd{type}\XOR\kwd{setf}\XOR\T})}
134 Return \retval{documentation string} of \VAR{foo} of given
135 type. \kwd{setf}able.
137 \IT{(\xorGOO{%
138 \xorGOO{%
139 \FU*{DO-ALL-SYMBOLS}\\
140 \FU*{DO-SYMBOLS}}{\}}
141 (\VAR{var} \OP{\VAR{package} \Op{\VAR{result}}})\\
142 \FU*{DO-EXTERNAL-SYMBOLS} (\VAR{var} \Op{\VAR{result}})}{\}}
143 \OPn{(\kwd{declare} \OPn{\VAR{decl}})}
144 \orGOO{\OPn{tag}\\
145 \OPn{form}}{\}})}
146 Evaluate \VAR{form}s with \VAR{var} successively bound to all
147 symbols from all registered packages, to all symbols from
148 \VAR{package}, or to all external symbols from \VAR{package}, resp. Return
149 \retval{value of \VAR{result}}.
151 \IT{(\SF*{WITH-PACKAGE-ITERATOR} (\VAR{name} \RP{\VAR{package}}
152 \Op{\kwd{:internal}\XOR\kwd{:external}\XOR\kwd{:inherited}})
153 \OPn{(\kwd{declare} \OPn{\VAR{decl}})} \OPn{\VAR{form}})}
154 Return \retval{values of \VAR{form}s}. In the body, successive
155 invocations of (\VAR{name}) return: \T\ if a symbol is returned;
156 a symbol from a \VAR{package}; accessibility
157 (\kwd{:internal}, \kwd{:external}, or \kwd{:inherited}); and the
158 package the symbol belongs to.
160 \IT{(\FU*{SYMBOL-NAME} \VAR{ symbol})}
161 \retval{Name} of \VAR{symbol}.
163 \IT{\arrGOO{(\FU*{SYMBOL-FUNCTION} \VAR{ symbol})\\
164 (\FU*{SYMBOL-VALUE} \VAR{ symbol})\\
165 (\FU*{SYMBOL-PLIST} \VAR{ symbol})}{\}}}
166 \retval{Function}, \retval{value}, or \retval{property list}, resp., of \VAR{symbol}. \kwd{setf}able.
168 \end{LIST}