7

開発環境に Emacs と SLIME を使用しています。入力する(write-toC-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

write-to-stingCommon Lisp が強力であることは知っていますが、ANSI 標準には含まれていないと思います。Google は、この関数に対して単一のヒットを提供しませんでした。それから私は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 に答える