1
下面的代碼工作,但我不得不加載swank無論我是否需要它。我可以懶洋洋地加載swank嗎?
(ql:quickload :swank)
(defun swank()
(swank:create-server :port 4005 :donot-close t))
如果我將「(ql:quickload:swank)」移到函數swank中,那麼CL將不會找到包swank。
真誠!
下面的代碼工作,但我不得不加載swank無論我是否需要它。我可以懶洋洋地加載swank嗎?
(ql:quickload :swank)
(defun swank()
(swank:create-server :port 4005 :donot-close t))
如果我將「(ql:quickload:swank)」移到函數swank中,那麼CL將不會找到包swank。
真誠!
請記住,閱讀是CL的一個單獨階段。首先讀取表單,然後執行。當讀者閱讀DEFUN表單時,它無法識別SWANK:CREATE-SERVER符號,因爲在那時QL:QUICKLOAD尚未執行。解決方案是使用INTERN。
(defun swank()
(ql:quickload :swank)
(funcall (intern (string '#:create-server) :swank) :port 4005 :dont-close t))