1

次のコードは機能しますが、必要かどうかに関係なくswankをロードする必要があります。

(ql:quickload :swank)
(defun swank ()
    (swank:create-server :port 4005 :donot-close t))

「(ql:quickload:swank)」を関数swankに移動すると、CLはパッケージswankを見つけられません。

心から!

4

1 に答える 1

6

読み取りはCLの別のフェーズであることを忘れないでください。最初にフォームが読み取られ、次に実行されます。リーダーがDEFUNフォームを読み取ったとき、その時点ではQL:QUICKLOADがまだ実行されていなかったため、SWANK:CREATE-SERVERシンボルを認識しませんでした。解決策は、INTERNを使用することです。

(defun swank ()
  (ql:quickload :swank)  
  (funcall (intern (string '#:create-server) :swank) :port 4005 :dont-close t))
于 2012-10-10T03:48:54.483 に答える