首页 > 解决方案 > 默认情况下,KEYWORD 包中包含哪些符号?

问题描述

KEYWORD默认情况下,包中包含哪些关键字?在我开始他们的 REPL 之后,我注意到 SBCL 和 CLISP 的初始实习关键字之间存在一些差异。包中的默认实习符号是否KEYWORD应该在实现之间有所不同?

在 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

标签: common-lispsbclclisp

解决方案


KEYWORD 包中默认包含哪些关键字?

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

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

无论是在标准中还是按照惯例,都没有期望关键字包中存在哪些符号 - 超出了标准中可能提到的那些符号。


推荐阅读