包装内的sbcl

时间:2013-02-08 10:27:26

标签: sbcl

在REPL我做:     *(defpackage:foo(:使用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中?

1 个答案:

答案 0 :(得分:0)

LOAD *PACKAGE*(以及*READTABLE*)绑定到它所持有的值 在加载文件之前,如下所示:

(let ((*package* *package*)
      (*readtable* *readtable*))
  ... ;; really load a file
)