7

我将 Emacs 与 SLIME 一起用于我的开发环境。当我输入(write-to然后C-M-i我得到以下自动完成:

Click on a completion to select it.
In this buffer, type RET to select the completion near point.

Possible completions are:
write-to-sting
write-to-string

我知道 Common Lisp 很强大,但我猜write-to-sting它不在 ANSI 标准中。谷歌没有为这个功能提供一个单一的点击。然后我试图在SBCL代码中找到它,但是

(documentation 'write-to-sting 'function)返回nil,因此它没有文档字符串。

当我尝试执行(write-to-sting)我得到的功能时The function COMMON-LISP-USER::WRITE-TO-STING is undefined.

Apropos 还找到了一个未绑定的函数:

(apropos 'write-to)
WRITE-TO
WRITE-TO-STING
WRITE-TO-STRING (fbound)

我的问题是:发生了什么事?有谁知道这个功能背后的故事?

4

1 回答 1

9

在您与 Lisp 环境交互的某个时刻,编写write-to-sting了 Lisp 阅读器并阅读了它。该符号被实习在 COMMON-LISP-USER 包中。毕竟,也许您打算实现一个向 Sting 发送电子邮件的功能,谁知道呢?自动完成通过过滤环境中当前已知的符号来工作。

您可以安全地(unintern 'write-to-sting)(或实施它)。

于 2016-09-27T07:28:08.857 回答