这是代码:
(defpackage :morse
(:use :common-lisp))
(in-package :morse)
...
当我使用C-c C-k(编译/加载文件)时:
CL-USER> *package*
#<PACKAGE "COMMON-LISP-USER">
; compiling file "/home/frederik/Lisp/Code/mycode/marco_baringer.lisp" (written 16 JUN 2014 11:30:15 AM):
; /home/frederik/Lisp/Code/mycode/marco_baringer.fasl written
; compilation finished in 0:00:00.025
CL-USER> *package*
#<PACKAGE "COMMON-LISP-USER">
CL-USER>
我仍处于打包状态&#34; COMMON-LISP-USER&#34;当命令&#34;(in-package:morse)&#34;在源代码中给出。我应该在&#34; MORSE&#34;我想因为当我在REPL中发出命令时:
...
CL-USER> (in-package :morse)
#<PACKAGE "MORSE">
MORSE> *package*
#<PACKAGE "MORSE">
MORSE>
...
有什么想法吗?我错了吗?
答案 0 :(得分:0)
来自:Nick Levine ravenbrook.com&gt; 主题:Re:SLIME编译和加载文件REPL停留在&#34; CL-USER&#34; with&#34;(in-package:xyz)&#34;在代码而不是&#34; XYZ&#34; 新闻组:gmane.lisp.slime.devel 日期:2014-06-17 08:12:34 GMT(15分钟前)
来自:Frederik Cheeseman evonet.be&gt; 日期:2014年6月17日星期二07:54:20 +0000(UTC)
当我做C-c C-k(SLIME编译/加载文件)时,REPL保持在 &#34; CL-USER&#34 ;.不应该切换到&#34; MORSE&#34;因为 &#34;(包装内:莫尔斯)&#34;代码行?
否(这一般适用于CL,而不仅仅适用于SLIME)。这是 因为,根据规范,&#34;加载绑定可读和包 在加载文件之前它们持有的值。&#34;实际上:
(defun load (file &key ...)
(let ((*package* *package*))
(in-load file ...)))