1

define-package在带有 ASDF 的 Common Lisp 中, inuiop/packagedefpackage宏有什么区别?

4

1 回答 1

1

UIOP 的条款更多。

https://common-lisp.net/project/asdf/uiop.html#UIOP_002fPACKAGE

define-package 支持以下关键字:use、shadow、shadowing-import-from、import-from、export、intern——根据 cl:defpackage。

这些是相同的。但是文档字符串的其余部分介绍了更多:recycle, mix, reexport...</p>

我使用reexport了它使以下操作变得更容易:您不想完全use打包 A(例如,Alexandria)。您想导入几个符号(简单,用import-from),还想导出它们(也很简单,用export)。但这样做时,您必须写两次符号。reexport节省重复。

我听到有人抱怨 defpackage 在某些情况下无法重新加载包,而 define-package 工作正常,但我没有遇到这种情况。

于 2020-10-26T11:35:39.297 回答