Clisp无法找到包裹

时间:2017-04-21 16:38:26

标签: package lisp common-lisp clisp

我已经使用allegro常见的lisp运行了一个lisp程序,持续了几天。我现在需要使用clisp,但是当我尝试编译它时,我得到:

SYSTEM::%FIND-PACKAGE: There is no package with name
      "COMMON-GRAPHICS-USER"

我是lisp的新手所以我一直在寻找解决方案,但我找不到。

  • clisp在哪里寻找这个包?
  • 如何添加它们?

我怀疑这是非常基本的,但我仍然不知道如何解决它。

1 个答案:

答案 0 :(得分:2)

包是(基本上)Common Lisp中的命名空间:使用包查找符号(即名称),通常存在于包中,并且有一个当前包的概念,包知道他们愿意看哪些其他包符号等等。所以包不是像Python那样加载的东西,尽管在加载东西时可能会创建包。 (为了增加混乱,当然人们会调用已经加载的代码集合!)

所以这种失败意味着包系统的当前状态是错误的,特别是它可能试图在名称为{的包中查找符号(通过阅读器或其他机制) {1}}并且此包不存在。 (它可能也试图直接找到一个包,例如当另一个包要求使用这个包时。)

不幸的是,几乎可以肯定的是,这个软件包在Allegro CL中仅存在 作为Common Graphics的一部分,这是一个ACL的东西:可能是有人编写了一个可移植版本,但我我不知道。

很遗憾,您尝试运行的代码很可能是Allegro CL特有的。

注意:以上内容并不是CL软件包系统的全面描述:如果您想详细了解它,请从the standard开始。有一个老笑话,有充分的理由说明为什么在第11章中描述了包,尽管我个人认为这是不合理的。