minor changes, mainly html
[clqr.git] / clqr-symbols-and-packages.tex
blob137a6695e472ee66f2f8224d317df0276cbea567
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*{T})}
18 Truth, or \V{*terminal-io*}.
20 \IT{\Goo{(\CNS*{NIL})\XOR{\kwd*{()}}}}
21 Falsehood, the empty list, \V{*standard-input*},
22 \V{*standard-output*}, or the global environment.
24 \IT{\V*{*package*}} The current package.
26 \IT{(\FU*{SYMBOL-PACKAGE '}\VAR{foo})} Return the \retval{package \VAR{foo} came from}.
28 \IT{(\kwd*{DEFPACKAGE}\VAR{ foo}
29 \orGOO{\OPn{(\kwd{:use }\OPn{\VAR{bar}})}\\
30 \OPn{(\kwd{:nicknames }\OPn{\VAR{nick}})}\\
31 (\kwd{:documentation }\VAR{doc})\\
32 \OPn{(\kwd{:export }\OPn{\VAR{baz}})}\\
33 \OPn{(\kwd{:import-from }\VAR{p} \OPn{\VAR{n}})}\\
34 \OPn{(\kwd{:intern }\OPn{\VAR{n}})}\\
35 \OPn{(\kwd{:shadow}\XOR\Goo{\kwd{:shadowing-import-from}\VAR{ p}\OPn{\VAR{ jnk}}})}\\
36 (\kwd{:size }\VAR{int})\\
37 }{\}})}
38 Return \retval{defined package \VAR{foo}} which inherits symbols exported by packages \VAR{bar}
39 excluding \VAR{jnk}s and some symbols.
40 \VAR{n}s from package \VAR{p}; exports \VAR{baz}es.
42 \IT{(\kwd*{IN-PACKAGE }\VAR{foo})} Make \retval{package \VAR{foo}} current.
44 \IT{(\FU*{USE-PACKAGE} (\OPn{\VAR{foo}}) \Op{\VAR{package}}\DF{\kwd{*package*}})} Make exported symbols
45 of packages \VAR{foo} available in \VAR{package}. Return \retval{\T}.
47 \IT{(\FU*{UNUSE-PACKAGE} (\OPn{\VAR{foo}})
48 \Op{\VAR{package}}\DF{\kwd{*package*}})}
49 Remove packages \VAR{foo} from use-list of \VAR{package}.
51 \IT{(\FU*{DELETE-PACKAGE} \VAR{package})} Delete \VAR{package}. Return
52 \retval{\T} if successful.
54 \IT{(\FU*{FIND-PACKAGE} \Goo{\VAR{name}\XOR\VAR{package}})} Return
55 \retval{package object} with \VAR{name} (case-sensitive).
57 \IT{(\FU*{LIST-ALL-PACKAGES})} \retval{List of registered packages}.
59 \IT{(\FU*{MAKE-PACKAGE} \VAR{name}
60 \orGOO{\kwd{:nicknames }(\OPn{\VAR{nick}})\DF{\NIL}\\
61 \kwd{:use }(\OPn{package})}{\}})}
62 Create \retval{package \VAR{name}}.
64 \IT{(\xorGOO{%
65 \xorGOO{%
66 \FU*{DO-ALL-SYMBOLS}\\
67 \FU*{DO-SYMBOLS}}{\}}
68 (\VAR{var} \OP{\VAR{package} \Op{\VAR{result}}})\\
69 \FU*{DO-EXTERNAL-SYMBOLS} (\VAR{var} \Op{\VAR{result}})}{\}}
70 \OPn{(\kwd{declare} \OPn{\VAR{decl}})}
71 \orGOO{\OPn{tag}\\
72 \OPn{form}}{\}})}
73 Evaluate \VAR{form}s with \VAR{var} successively bound to all
74 symbols from all registered packages, to all symbols from
75 \VAR{package}, or to all external symbols from \VAR{package}, resp. Return
76 \retval{value of \VAR{result}}.
78 \IT{(\FU*{EXPORT} \VAR{symbols} \Op{\VAR{package}\DF{\kwd{*package*}}})}
79 Make \VAR{symbols} external to \VAR{package}. Return \retval{\T}.
81 \IT{(\FU*{UNEXPORT} \VAR{symbols} \VAR{package})}
82 Revert \VAR{symbols} to internal status. Return \retval{\T}.
84 \IT{(\FU*{PACKAGE-NAME} \VAR{package})} \retval{Name of \VAR{package}}.
86 \IT{(\FU*{PACKAGE-NICKNAMES} \VAR{package})}
87 \retval{List of nicknames} of \VAR{package}.
89 \IT{(\FU*{PACKAGE-SHADOWING-SYMBOLS} \VAR{package})}
90 \retval{List of shadowing symbols} of \VAR{package}.
92 \IT{(\FU*{PACKAGE-USE-LIST} \VAR{package})}
93 \retval{List of other packeges} used by \VAR{package}.
95 \IT{(\FU*{PACKAGE-USED-BY-LIST} \VAR{package})}
96 \retval{List of other packages} using \VAR{package}.
98 \IT{(\FU*{RENAME-PACKAGE} \VAR{package} \Op{(\OPn{nick})\DF{\NIL}})}
99 Rename \VAR{package}. Return \retval{renamed package}.
101 \IT{(\SF*{WITH-PACKAGE-ITERATOR} (\VAR{name} \RP{\VAR{package}}
102 \Op{\kwd{:internal}\XOR\kwd{:external}\XOR\kwd{:inherited}})
103 \OPn{(\kwd{declare} \OPn{\VAR{decl}})} \OPn{\VAR{form}})}
104 Return \retval{values of \VAR{form}s}. In the body, successive
105 invocations of (\VAR{name}) return: \T\ if a symbol is returned;
106 a symbol from a \VAR{package}; accessibility
107 (\kwd{:internal}, \kwd{:external}, or \kwd{:inherited}); and the
108 package the symbol belongs to.
110 \IT{(\xorGOO{\FU*{INTERN}\\
111 \FU*{FIND-SYMBOL}}{\} \VAR{name} \Op{\VAR{package}}})}
112 Intern or find, resp., \retval{symbol \VAR{name}} in \VAR{package}. Second return value is
113 one of \retvalii{\kwd{:internal}}, \retvalii{\kwd{:external}}, or
114 \retvalii{\kwd{:inherited}}.
116 \IT{(\FU*{SHADOW} \RP{\VAR{symbol}}
117 \Op{\VAR{package}\DF{\kwd{*package*}}})}
118 Add \VAR{symbol}s to shadowed list of \VAR{package}. Return \retval{\T}.
120 \IT{(\xorGOO{\FU*{IMPORT}\\
121 \FU*{SHADOWING-IMPORT}}{\}}\RP{\VAR{symbol}}
122 \Op{\VAR{package}\DF{\kwd{*package*}}})}
123 Make \VAR{symbol}s internal to \VAR{package}. Return \retval{\T}. In
124 case of a name conflict, signal \kwd{package-error}, or shadow
125 the old symbol, resp.
127 \IT{(\kwd*{UNINTERN} \VAR{symbol} \Op{\VAR{package}})}
128 Remove \VAR{symbol} from \VAR{package}, return \retval{\T} on success.
130 \IT{(\FU*{FIND-ALL-SYMBOLS} \VAR{string})}
131 Return \retval{list of symbols} with name \VAR{string} from all
132 registered packages.
134 \end{LIST}