1 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2 \section{Symbols and Packages
}
3 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
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
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.
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
})\\
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
}}.
66 \FU*
{DO-ALL-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
}})
}
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