Lisp:宏/函数定义中的包前缀问题

时间:2011-03-24 17:02:18

标签: lisp common-lisp

我想创建一个包含以包为前缀的符号的宏(或函数)。只有已经定义了这些包,才有可能。为什么?只要我在调用宏/函数时定义了包,为什么在定义宏/函数时它们是未定义的?

我想要这个的原因是我希望在我的init文件中有便利功能,用于启动我在不同项目开发的东西 - 包但我不想加载所有项目只是为了能够定义便利功能因为我一次只开发一个项目。

2 个答案:

答案 0 :(得分:7)

在评估之前,Lisp阅读器会读取源代码(参见read)。如果尚未定义包,则读者无法实施符号。

答案 1 :(得分:3)

(funcall (find-symbol "RENDER-SUPER-FANCY-GRAPHICS"
                      "THIS-PACKAGE-DOES-NOT-YET-EXIST")
         *standard-output* :width 1000 :height 800)