【发布时间】:2017-12-05 15:55:51
【问题描述】:
当我在 UCW 中使用-package :parenscript 时会出现许多名称冲突。如果我保留旧的,Parenscript 不起作用(另外,parenscript 直接调用 parenscript:ps 时行为不端)并且如果我导入新的,UCW 似乎被破坏了。 common lisp 有什么方法可以并排使用名称冲突的包?
【问题讨论】:
当我在 UCW 中使用-package :parenscript 时会出现许多名称冲突。如果我保留旧的,Parenscript 不起作用(另外,parenscript 直接调用 parenscript:ps 时行为不端)并且如果我导入新的,UCW 似乎被破坏了。 common lisp 有什么方法可以并排使用名称冲突的包?
【问题讨论】:
另外,parenscript 在直接 parenscript:ps 调用时行为不端
我猜这是因为如果你不使用这个包,parenscript:@之类的符号就不会被导入,所以:
* (ps:ps (@ a b))
"at(a, b);"
但如果你这样做:
* (ps:ps (ps:@ a b))
"a.b;"
在 common lisp 中有什么方法可以并排使用名称冲突的包?
如果您同时需要foo:a 和bar:a,那么您不能只写a 并让解释器找出您的意思。所以你必须至少有一个资格。
您是否需要使用 parenscript 包并从 UCW 导入不冲突的符号?你需要shadow-import其他吗?没有更多细节,很难说在这里做什么是最好的。
如果您需要,请参阅 Programming in the Large: Packages and Symbols(Practical Common Lisp,P. Seibel)。
【讨论】: