【发布时间】:2021-07-13 14:58:41
【问题描述】:
我需要帮助来理解为什么 Allegro CL 不执行放入加载文件中的包内指令。更准确地说,我加载了 LISA 环境并希望将 Lisa 设为活动包,但在使用指令加载 lisp 文件后,提示继续为 CL-USER-
【问题讨论】:
-
可以定义一个“setup”函数,将当前包设置为Lisa包,但需要在加载文件后调用(例如在启动脚本中)
标签: common-lisp
我需要帮助来理解为什么 Allegro CL 不执行放入加载文件中的包内指令。更准确地说,我加载了 LISA 环境并希望将 Lisa 设为活动包,但在使用指令加载 lisp 文件后,提示继续为 CL-USER-
【问题讨论】:
标签: common-lisp
这是正确的行为。
来自LOAD的CLHS文档
load将*readtable*和*package*绑定到它们在加载文件之前保存的值。
因此,在加载文件时对*package* 进行的任何重新分配都将被丢弃。
这允许在文件中使用IN-PACKAGE 来指定如何处理该文件中的代码,而不会对用户的环境产生副作用。
【讨论】: