默认情况下,KEYWORD 包中包含哪些符号?

What symbols are interned in the KEYWORD package by default?

KEYWORD 包中默认驻留了哪些关键字?在我启动它们的 REPL 后,我立即注意到 SBCL 和 CLISP 的初始 interned 关键字之间存在一些差异。 KEYWORD 包中的默认 interned 符号是否应该因实现而异?

在 SBCL 中:

(find-symbol "CL" "KEYWORD")                ; -> :CL, :EXTERNAL
(find-symbol "CL-USER" "KEYWORD")           ; -> :CL-USER, :EXTERNAL
(find-symbol "COMMON-LISP" "KEYWORD")       ; -> :COMMON-LISP, :EXTERNAL
(find-symbol "COMMON-LISP-USER" "KEYWORD")  ; -> NIL, NIL

在 CLISP 中:

(find-symbol "CL" "KEYWORD")                ; -> NIL, NIL
(find-symbol "CL-USER" "KEYWORD")           ; -> NIL, NIL
(find-symbol "COMMON-LISP" "KEYWORD")       ; -> :COMMON-LISP, :EXTERNAL
(find-symbol "COMMON-LISP-USER" "KEYWORD")  ; -> NIL, NIL

What keywords are interned in the KEYWORD package by default?

任何实现 wants/needs。请记住,Lisp 实现可能包括编译器、I/O 系统、对象系统、操作系统接口、开发工具、网络连接方式、图形库、终端库……

其中每一个(实现、库、扩展...)都可以在其实现代码中使用关键字。由于只有一个关键字包,所有关键字最终都在同一个包中。

无论是在标准中还是按照惯例,关键字包中都没有预期的符号 - 除了标准中可能提到的符号之外。