Packaging the Library(给库打包)
从包的角度讲,如果你下载了该库的完整代码,会看到它被定义在一个新的包 com.gigamonkeys.pathnames
中。我将在第 21 章讨论定义使用包的细节。目前你应当注意,某些实现提供了它们自己的包,其中含有一些函数与你将在本章中定义的一些函数有相同的名字,并且这些名字可在 CL-USER
包中访问。这样,如果你试图在 包中定义该库中的某些函数,可能会得到关于破坏了已有定义的错误或警告。为了避免发生这种情况,你可以创建一个称为 packages.lisp
的文件,其中带有下面的内容:
并加载它,然后在 REPL 中或者在你输入定义的文件顶端,输入下列表达式:
(in-package :com.gigamonkeys.pathnames)
将库以这种方形式打包,除了可以避免与那些已存在于 CL-USER
包中的符号产生冲突以外,还可以使其更容易被其他代码使用,你在后续几章中将看到这一点。