0

REPL では: * (defpackage :foo (:use common-lisp)) * (in-package :foo)

#<PACKAGE "FOO">

* *package*

#<PACKAGE "FOO">

ファイルを書くと:

try-package.lisp :

(defpackage :foo (:use common-lisp))
(in-package :foo)

次に、このファイルをロードします。

* (load "try-package")
T 
* *package*
#<PACKAGE "COMMON-LISP-USER">

なぜ私は常に COMMON-LISP-USER にいるのに、 FOO にいる必要があるのですか?

4

1 に答える 1

0

LOAD 次のように、ファイルをロードする前に保持していた値にバインド*PACKAGE*(および) します。*READTABLE*

(let ((*package* *package*)
      (*readtable* *readtable*))
  ... ;; really load a file
)          
于 2013-02-08T10:30:40.540 に答える