【问题标题】:Allegro common lisp in-package does not workAllegro common lisp in-package 不起作用
【发布时间】:2021-07-13 14:58:41
【问题描述】:

我需要帮助来理解为什么 Allegro CL 不执行放入加载文件中的包内指令。更准确地说,我加载了 LISA 环境并希望将 Lisa 设为活动包,但在使用指令加载 lisp 文件后,提示继续为 CL-USER-

【问题讨论】:

  • 可以定义一个“setup”函数,将当前包设置为Lisa包,但需要在加载文件后调用(例如在启动脚本中)

标签: common-lisp


【解决方案1】:

这是正确的行为。

来自LOAD的CLHS文档

load*readtable**package* 绑定到它们在加载文件之前保存的值。

因此,在加载文件时对*package* 进行的任何重新分配都将被丢弃。

这允许在文件中使用IN-PACKAGE 来指定如何处理该文件中的代码,而不会对用户的环境产生副作用。

【讨论】:

  • 非常感谢 Barmar 的回答。加载文件后,我将启动顶级包内命令。
猜你喜欢
  • 2020-07-17
  • 1970-01-01
  • 2021-02-11
  • 1970-01-01
  • 1970-01-01
  • 2013-07-29
  • 1970-01-01
  • 1970-01-01
  • 2012-01-14
相关资源
最近更新 更多