获取不带大写字母的符号名称

get symbol-name without uppercase

在 Common Lisp 中是否可以得到没有大写结果的 symbol-name

(symbol-name 'aAbB)
;; => "AABB"

(OTHER_FUNCTION? 'aAbB)
;; => "aAbB"

我想将符号名称用作字符串,但区分大小写。

您的符号 实际上 全部大写,因为 reader 已经将其大写。为了防止这种情况,您可以使用不同的可读大小写或转义符号,使用封闭的管道符号:'|aAbB| 或下一个字符的反斜杠:'\aA\bB.

这个问题有相当完整的答案:Why is Common Lisp case insensitive

" readtable 对象有一个属性,readtable-case,它控制 reader 如何实习和评估读取的符号。你可以将 readtable-case 设置为:upcase(默认), :downcase, :preserve, :invert.

默认情况下,readtable-case 设置为 :upcase,这会导致所有符号都转换为大写。"