2

次のコード スニペットでは、SB-INT:SIMPLE-READER-PACKAGE-ERROR; が返されます。REPLがコードを読んでいる間、パッケージ「quicklisp-quickstart」がまだ定義されていないためです。しかし、パッケージは "quicklisp.lisp" で定義されています。

次のコードを機能させるにはどうすればよいですか? または、一般的な Lisp リーダーに、このパッケージが動的にロードされるファイルで定義されることをどのように伝えることができますか?

* (let ((quicklisp-init (merge-pathnames "quicklisp/setup.lisp"
                                       (user-homedir-pathname))))
  (if (probe-file quicklisp-init)
    (load quicklisp-init)
    (progn
      (load "quicklisp.lisp")
      (quicklisp-quickstart:install))))

debugger invoked on a SB-INT:SIMPLE-READER-PACKAGE-ERROR in thread
#<THREAD "main thread" RUNNING {100299C6A3}>:
  Package QUICKLISP-QUICKSTART does not exist.

    Stream: #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {100017F893}>

Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [ABORT] Exit debugger, returning to top level.
4

1 に答える 1