我想通过 TCP 将 Lisp 表单传输到另一台主机。例如,它是通过
发送的(prin1 `(setf mypack:*somevar* ,mypack:*somevar*) the-stream)
.
在另一端,与源端运行相同的程序,因此所有包都存在等等。此引用表格贯穿
eval
。
但是 'mypack' 被 prin1
忽略,因此在评估时该变量被设置在 'common-lisp-user' 包中。
是否可以定义环境或评估表单的包,以便我可以设置变量或调用函数?
带前缀和不带前缀的打印:
CL-USER 12 > (let ((*package* (find-package "CL-USER")))
(print 'foo:x1)
(values))
FOO:X1
与
CL-USER 13 > (let ((*package* (find-package "FOO")))
(print 'foo:x1)
(values))
X1