设置评估环境(包?)

问题描述 投票:0回答:1

我想通过 TCP 将 Lisp 表单传输到另一台主机。例如,它是通过

发送的

(prin1 `(setf mypack:*somevar* ,mypack:*somevar*) the-stream)
.

在另一端,与源端运行相同的程序,因此所有包都存在等等。此引用表格贯穿

eval
。 但是 'mypack' 被
prin1
忽略,因此在评估时该变量被设置在 'common-lisp-user' 包中。

是否可以定义环境或评估表单的包,以便我可以设置变量或调用函数?

common-lisp
1个回答
0
投票

带前缀和不带前缀的打印:

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 
© www.soinside.com 2019 - 2024. All rights reserved.