在带有ASDF的Common Lisp中,define-package
中的uiop/package
和defpackage
宏之间有什么区别?
答案 0 :(得分:1)
UIOP的其中有更多子句。
https://common-lisp.net/project/asdf/uiop.html#UIOP_002fPACKAGE
define-package支持以下关键字:use,shadow,shadinging-import-from,import-from,export,intern-按照cl:defpackage。
那些是相同的。但是其余的文档字符串引入了更多信息:recycle
,mix
,reexport
…
我使用了reexport
,这使以下操作变得容易:您不想完全use
打包A(例如Alexandria)。您想导入几个符号(使用import-from
轻松),也想导出它们(使用export
轻松导入)。但是这样做时,您必须将符号写两次。 reexport
保存重复项。
我听到有人抱怨defpackage在某些情况下将无法重新加载软件包,并且define-package可以正常工作,但是我没有遇到这种情况。