Racket - 将引用列表中的符号自动转为小写

Racket - turns symbols in quoted list to lowercase automatically

我在 Racket 中有以下程序,语言设置为 "determine from source",输出语法设置为 "write":

#lang r5rs
(define g '((w C C) (x A C) (y A B) (z B C)))

当我 运行 它并输入交互式提示时

> g

我明白了

{{w c c} {x a c} {y a b} {z b c}}

但是,当我直接在提示中输入列表时,我得到了

> '((w C C) (x A C) (y A B) (z B C))
{{w C C} {x A C} {y A B} {z B C}}

如何防止 Racket 将符号变为小写?

R5RS 标准要求 reader 传递不区分大小写的符号。大多数 R5RS 实现会将具有大写符号的符号转换为小写。如果需要生成大写字母的符号,需要使用string->symbol.

> (string->symbol "Hello")
Hello

由于许多 Scheme 实现支持区分大小写,后来的标准将默认值更改为区分大小写。

请参阅方案常见问题解答中的(第一个!)问题以获得更长的解释:

http://community.schemewiki.org/?scheme-faq-language