我正在使用 SBCL、emacs、slime 和 quicklisp 来安装各种软件包。
我像这样实例化并启动一个hunchentoot接受器,
CL-USER> (hunchentoot:start (make-instance 'hunchentoot:acceptor :port 4242))
#<HUNCHENTOOT:ACCEPTOR (host *, port 4242)>
我通过在端口 4242 上打开浏览器进行测试,它工作正常。
然后要停止它,我可以复制打印的表示并发出命令,如下所示:
CL-USER> (hunchentoot:stop #<HUNCHENTOOT:ACCEPTOR (host *, port 4242)>)
#<HUNCHENTOOT:ACCEPTOR (host *, port 4242)>
这仅适用于相应开始返回的打印表示。
这让我很惊讶。我认为打印的表示只是返回的文本,大概是因为对象本身无法显示。因此,我认为 hunchentoot:stop 可以使用文本字符串来查找对象非常简洁。但是经过更多的实验,我注意到我必须使用与开头相对应的打印表示,而不仅仅是任何一个。我还注意到,当我将鼠标放在打印的表示上时,它会突出显示整个片段。所以它根本不是文本,而是实际在 REPL 中的对象,我可以使用它。
因此,一方面返回的是打印表示,因此我可以看到它,但另一方面它是我可以在 REPL 中复制和粘贴的实际对象。这是正确的吗?我想这一定是因为我正在这样做。这对我来说太棒了。
任何解释或见解将不胜感激。