以下代码有效,但无论是否需要,我都必须加载swank。
(ql:quickload :swank)
(defun swank ()
(swank:create-server :port 4005 :donot-close t))
如果我将“(ql:quickload:swank)”移动到函数swank中,那么CL将无法找到包swank。
此致!
答案 0 :(得分:6)
请记住,阅读是CL中的一个单独阶段。首先读取一个表单,然后执行它。当读者读取DEFUN表单时,它无法识别SWANK:CREATE-SERVER符号,因为此时QL:QUICKLOAD尚未执行。解决方案是使用INTERN。
(defun swank ()
(ql:quickload :swank)
(funcall (intern (string '#:create-server) :swank) :port 4005 :dont-close t))