在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中?
答案 0 :(得分:0)
LOAD
将 *PACKAGE*
(以及*READTABLE*
)绑定到它所持有的值
在加载文件之前,如下所示:
(let ((*package* *package*)
(*readtable* *readtable*))
... ;; really load a file
)