Lisp:我在哪里可以找到 sbcl 的保留字符列表?

Lisp: Where can I find a list of reserved characters for sbcl?

有人能指出 Lisp 的保留字符列表吗?我正在尝试启动一些用于学习目的的重要程序。我可以找到使用 emacs 已经存在的函数,但我找不到保留字符和字符串的编译列表,如 `,#\.

大多数教程往往只在适用于特定示例时才谈论它们,或者谈论高级表达式语法。

你的意思是像 Common Lisp 中不允许出现在符号中的字符?鉴于 SBCL 是 Common Lisp 语言的实现?

实际上实际上有none。如果你使用像 ,#\ 这样的 character/string,那么可以转义它们:

CL-USER 16 > '( | a A | |,| |#\.| a\ \,\ )
(| a A | \, \#\. A\ \,\ )

CL-USER 17 > (mapcar #'symbol-name *)
(" a A " "," "#\." "A , ")

CL-USER 18 > (mapcar #'length *)
(5 1 3 4)

此外,这里是默认 s 表达式 reader 中字符的概述:2.1.4 Character Syntax Types and 2.4 Standard Macro Characters

请注意,Common Lisp 是在 Unicode 出现之前定义的。但是现在许多支持 Unicode 的实现也允许在符号中使用 Unicode 'characters'。

* (list (code-char 300) (code-char 323) (code-char 812))
(#\LATIN_CAPITAL_LETTER_I_WITH_BREVE #\LATIN_CAPITAL_LETTER_N_WITH_ACUTE
 #\COMBINING_CARON_BELOW)
* (coerce * 'string)
"ĬŃ̬"
* (make-symbol *)
#:ĬŃ̬